mod_auth_mysql, Apache 2.2 und Debian Etch

Posted on the April 7th, 2008 under howtos by matthias

Authentifizierung gegen eine MySQL Datenbank mit Apache 2.2 wird dem Anwender unter Debian Etch ziemlich schwer gemacht. Warum? Es gibt das allseits beliebte libapache2-mod-auth-mysql Paket nicht mehr im Etch Repository, da es nicht sauber gegen Apache 2.2 gebaut werden kann. Da ich alle anderen Lösungen für unnötig kompliziert oder zu unsicher halte, hier eine kleine Anleitung, um das Modul per Hand zu kompilieren.

Ein installierter Apache wird vorausgesetzt, die restlichen Komponenten werden wie folgt nachinstalliert:

[code language="css"]aptitude install apache2-dev libmysqlclient-dev patch[/code]

Nun laden wir Quellcode und Patch von der Entwicklerseite herunter, entpacken das heruntergeladene Paket und wechseln in den neu erstellten Ordner:

[code language="css"]wget http://heanet.dl.sourceforge.net/sourceforge/modauthmysql/mod_auth_mysql-3.0.0.tar.gz
wget http://dl.adminlife.net/apache22.diff
tar xzf mod_auth_mysql-3.0.0.tar.gz
mv apache22.diff mod_auth_mysql-3.0.0/
cd mod_auth_mysql-3.0.0[/code]

Nun wird der Patch angewandt, der eine Funktion mit der in Debian Etch enthaltenen Apache 2.2 Version garantiert:

[code language="css"]patch -p1 <apache22.diff[/code]

Nun bauen wir das Modul mit apxs2 und installieren dieses:

[code language="css"]apxs2 -c -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c
apxs2 -i mod_auth_mysql.la[/code]

Nun bauen wir uns noch eine Debian-typische .load Datei, um das Modul in Apache zu laden und aktivieren das Modul mit einem Softlink:

[code language="css"]echo "LoadModule mysql_auth_module /usr/lib/apache2/modules/mod_auth_mysql.so" > /etc/apache2/mods-available/mod_auth_mysql.load
ln -s /etc/apache2/mods-available/mod_auth_mysql.load /etc/apache2/mods-enabled/mod_auth_mysql.load[/code]

Eine Konfiguration kann wie folgt aussehen:

[code language="css"]<directory /var/www/www.my-vhost.com>
AuthName "VIP only"

AuthType Basic
AuthBasicAuthoritative Off
AuthGroupFile /dev/null
AuthUserFile /dev/null
AuthMySQLEnable On
AuthMySQLHost localhost
AuthMySQLUser authuser
AuthMySQLPassword geheim
AuthMySQLDB auth
AuthMySQLUserTable user
AuthMySQLNameField username
AuthMySQLPasswordField password
AuthMySQLPwEncryption md5

AuthMySQLUserCondition "active = 1"

AuthMySQLAuthoritative On
require valid-user
</directory>[/code]

Weitere Konfigurationsparameter finden sich in der zugehörigen README.

Wichtig: Das Modul arbeitet mit der threadbasierten Version von Apache (apache2-mpm-worker) nicht korrekt zusammen. Tut euch und euren Usern einen Gefallen und nutzt die klassische Prefork Variante vom Apache (apache2-mpm-prefork), um sporadischen Fehlern bei der Nutzung von mod_auth_mysql aus dem Weg zu gehen.

|

8 Responses to 'mod_auth_mysql, Apache 2.2 und Debian Etch'

  1. 24. October 2008 at 11:16
    stevie
  2. 22. February 2009 at 22:24
    Internetagentur
  3. 14. May 2009 at 12:53
    basti
  4. 31. July 2009 at 18:40
    exxcubitor
  5. 31. July 2009 at 18:53
    matthias
  6. 31. July 2009 at 20:03
    exxcubitor
  7. 01. August 2009 at 09:44
    exxcubitor
  8. 06. July 2010 at 10:27
    Anonymous

Leave a Reply




XHTML::
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>