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:

aptitude install apache2-dev libmysqlclient-dev patch

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

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

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

patch -p1 <apache22.diff

Nun bauen wir das Modul mit apxs2 und installieren dieses:

apxs2 -c -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c
apxs2 -i mod_auth_mysql.la

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

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

Eine Konfiguration kann wie folgt aussehen:

<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>

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.

Related posts:

Twitter Post | Print Post

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

  1. Gravatar 24. October 2008 at 11:16
    stevie
  2. Gravatar 22. February 2009 at 22:24
    Internetagentur
  3. Gravatar 14. May 2009 at 12:53
    basti
  4. Gravatar 31. July 2009 at 18:40
    exxcubitor
  5. Gravatar 31. July 2009 at 18:53
    matthias
  6. Gravatar 31. July 2009 at 20:03
    exxcubitor
  7. Gravatar 01. August 2009 at 09:44
    exxcubitor
  8. Gravatar 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>