Po pierwsze różnica.
mod_authn_dbd udostępnia front-endy uwierzytelniania, takie jak mod_auth_digest i mod_auth_basic, do uwierzytelniania użytkowników poprzez wyszukiwanie użytkowników w tabelach SQL.
mod_auth_mysql to moduł Apache, który umożliwia uwierzytelnianie przy użyciu danych użytkowników i grup przechowywanych w bazach danych MySQL. Wydaje się, że projekt nie był aktualizowany od 2005 roku, więc wybrałbym mod_authn_dbd .
Aby ustawić to poprawnie, najpierw musisz odpowiednio skonfigurować mod_authn_dbd i mod_dbd w konfiguracji Apache, mod_dbd zajmie się połączeniem z bazą danych. Gdy już to zrobisz (upewnij się, że Apache działa z aktywnymi modułami), możesz przystąpić do ich konfiguracji.
Dodaj coś takiego do swojej konfiguracji Apache, aby skonfigurować połączenie z bazą danych:
<IfModule mod_dbd.c>
DBDriver mysql
DBDParams "host=(your_db_server, p.e. 127.0.0.1) dbname=your_db_name user=your_db_user pass=your_db_pass"
DBDMin 1
DBDKeep 8
DBDMax 20
DBDExptime 200
</IfModule>
Teraz dodaj żądaną konfigurację uwierzytelniania do konfiguracji Apache:
<Directory "/your/svn/repository/path/">
Options FollowSymLinks Indexes MultiViews
AuthType Basic
AuthName "Allowed users Only"
AuthBasicProvider dbd
AuthDBDUserPWQuery "SELECT pwd FROM tbl_users, tbl_user_group WHERE tbl_users.user_id=%s AND tbl_user.user_id=tbl_user_group.user_id"
Require valid-user
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Uprościłem instrukcję SELECT dla lepszej czytelności, musisz ją rozszerzyć, aby udoskonalić konfigurację.
EDYTUJ:
Po wpisaniu znalazłem bardzo dobry przykład w sieci, może go przeczytałem tutaj , także. To znacznie głębiej niż moja uproszczona odpowiedź.