Zuerst der Unterschied.
mod_authn_dbd stellt Authentifizierungs-Frontends wie mod_auth_digest und mod_auth_basic bereit, um Benutzer zu authentifizieren, indem Benutzer in SQL-Tabellen nachgeschlagen werden.
mod_auth_mysql ist ein Apache-Modul, das die Authentifizierung anhand von Benutzer- und Gruppendaten ermöglicht, die in MySQL-Datenbanken gespeichert sind. Das Projekt scheint seit 2005 nicht aktualisiert worden zu sein, also würde ich mich für mod_authn_dbd entscheiden .
Um dies richtig einzurichten, müssen Sie zuerst mod_authn_dbd und mod_dbd in Ihrer Apache-Konfiguration richtig konfigurieren, mod_dbd kümmert sich um Ihre Datenbankverbindung. Sobald Sie dies getan haben (stellen Sie sicher, dass Ihr Apache mit diesen aktiven Modulen läuft), können Sie mit der Konfiguration fortfahren.
Fügen Sie Ihrer Apache-Konfiguration so etwas hinzu, um die Datenbankverbindung zu konfigurieren:
<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>
Fügen Sie nun Ihre gewünschte Authentifizierungskonfiguration in die Apache-Konfiguration ein:
<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>
Ich habe die SELECT-Anweisung für eine bessere Lesbarkeit vereinfacht, Sie müssen dies erweitern, um Ihre Konfiguration zu verfeinern.
BEARBEITEN:
Nach dem Tippen habe ich ein sehr gutes Beispiel im Web gefunden, vielleicht lesen Sie es hier , zu. Es geht viel tiefer als meine vereinfachte Antwort.