Kein libapache2-mod-auth-mysql in Etch

von Khark am 18. Juli 2007 um 23:30 Uhr

Ich möchte mal erwähnen, das ich es beschissen finde, das in Debian Etch kein libapache2-mod-auth-mysql gibt.
In Sarge ist es enthalten und in Sid (Testing) auch. Nur in Etch nicht.
Wieso? Nun der Autor hat keinen Bock mehr auf das Apache-Modul-Gefrickel und seinen den Betreuerposten für das Paket aufgegeben.
Mittlerweile hat sich ein neuer gefunden, weswegen es auch wieder in Sid ist, aber für Stable hat es dann nicht gereicht.

Debian empfiehlt stattdessen libpam-mysql mit libapache2-mod-auth-pam zu nutzen.
Leider benötigt der Webserver dafür immer Leserechte auf die /etc/shadow. (Wenn dem nicht der Fall ist, bitte korrigiert mich.) Etwas das für mich einfach nicht vertretbar ist.
Den wenn ich von MySQL rede ist fast immer PHP mit im Spiel. Und PHP-Software kann teilw. schon recht eklig sein.
Dieser dann aber noch die Möglichkeit einräumen über den Webserver die /etc/shadow zu lesen.
- Nein danke.
Gut über so Sachen wie suPHP/suexec könnte man das ganze wieder eindämmen. Das ist dann wieder zuviel gefrickel. Da ist es einfacher die Benutzerauthentifizierung gegen MySQL in die Anwendung direkt einzubauen.
Zudem ist die Doku zu dem Umgang mit libpam-mysql dürftig. Zwar findet man die Direktiven irgendwo unterhalb von /usr/share/doc/libpam-mysql/README aber naja..

Nun gut. Jetzt ist es ja nicht so, das Apache keine anderen Module hat die man für die Authentifikation gegen eine MySQL-Datenbank nutzen könnte.
Zum Beispiel sieht mod_dbd zusammen mit mod-authn-dbd doch recht vielversprechend aus.

Unterstützt wird laut http://httpd.apache.org/docs/2.2/mod/mod_dbd.html#dbdparams Oracle, PostgreSQL, MySQL und SQLlite 2/3.
Schön. Allerdings kommt der Treiber für MySQL nicht mit, weil MySQL da andere Lizenzbedingungen hat als Debian.
Siehe: http://apache.webthing.com/database/
Selbst nachkompilieren geht nicht, weil ich den Apache-Source nicht habe, geschweige den apxs um das Modul zu basteln. Ich könnte ihn zwar installieren (Pakete apache2-src und apache2-threaded-dev) will ich aber nicht.
- Zuviel gefrickel.
Zudem sind die mod_dbd Direktiven nur im Server oder Virtual Server Kontext zulässig. Soll heißen das ich für jedes Verzeichnis, für jede Applikation bei der ich per mod_dbd und mod-authn-dbd die User authentifizieren will, einen eigenen virtuellen Host anlegen müsste.
In meinem Versuch klappt es nicht 2 unterschiedliche DBDParams-Direktiven in einem virtuellen Host anzulegen. (Getestet mit PostgreSQL.)
Man könnte das ganze ja wiederum über Include-Anweisungen lösen, dann müsste man zumindest nicht die DBD-Direktiven immer neu schreiben.
Aber ich mache doch nicht für jedes Verzeichniss einen eigenen virtuellen Host auf. Die Lösung über .htaccess oder die Directory-Direktiven fand ich da schon besser.

Also zur guckt man nach einer anderen Alternative. Zum Beispiel nachträglich erstellten MySQLAuth-Paketen für Debian Etch. (http://www.heuer.org/mod_auth_mysql/)
- Diese wollen aber auch nicht. “Floating point exception.” beim starten von Apache.

So langsam kann ich echt verstehen wieso der Autor das Paket aufgegeben hat.
Ich integriere die Benutzerauthentifizierung jetzt jedenfalls direkt in meine PHP-Anwendungen. Spart jede Menge Ärger, ist zukunftssicherer und macht die Applikation unabhängiger vom Webserver.

Tags:

8 Antworten zu “Kein libapache2-mod-auth-mysql in Etch”

  1. UllaDieTrulla sagt:

    Willkommen in der Welt von Linux. Frickel, Frickel, Frickel. Ich hatte Linux schon vor 2 Jahren aufgegeben.

  2. Khark sagt:

    Öhm. Frickel, Frickel, Frickel. Klar.

    Aber man sollte bedenken, dass gerade dies eine Stärke von Linux/Unix ist.
    Unter Windows kannst du keine Logs mit regulären Ausdrücken auswerten.
    Unter Windows kann der Standardtexteditor noch nichtal Syntaxhighlighting und Zeilennummern (Ok er kann in eine bestimmte Zeile springen. Hilft aber meist auch nicht viel.)
    Und wenn unter Windows eine Option nicht da ist. Dann geht das im Regelfall nur mit extrem viel gefrickel was meistens dann doch scheitert, da man über die Interna nicht bescheid weiß und es auch keine Doku/Quellcode gibt.

    Unter Linux hingegeben gibt es jede Menge Alternativen für einen Lösungsweg. Diese sind dann eben meist mit Frickelei verbunden. Aber wenn es dann gut und richtig läuft? Was ist so schlimm daran?

    Mich hat in diesem spez. Fall eben gestört dass das Paket nicht da ist und die anderen Lösungen technisch einfach zuviel Änderungen erforderten, so dass es schon wieder einfacher war den Code zu ändern.

  3. die schwester vom bruder sagt:

    *spammodusan*
    Ich versteh nur einen großen Bahnhof. Der Zug ist abgefahren. Erstmal n bier…
    Man sollte sowieso nie Suses in Pakete packen, dann denken die Apachen es ist Weihnachten, hat das Oracle gesagt. Aber vielleicht kommt der große, mächtige Debian und befreit die Suse und wenn sie nicht gestorben sind.. so produzieren sie heute immer noch kleine Pinguine…
    *spammodusaus*

  4. [...] wieder etwas ähnliches wie hier. Zwar geht es jetzt nicht um MySQL-Authentifizierung, aber um Authentifizierung mit [...]

  5. tex sagt:

    Moin,
    das ist eine Schande, dass libapache2-mod-auth-mysql nicht in etch ist. Ich könnte dieses Paket echt gut gebrauchen, aber nein. Gibts natürlich nicht. Backports scheinen auch keine in Sicht – Toll.

  6. Robert Tulke sagt:

    Ich frag mich gerade wo dein Problem dabei ist? Du kannst das Paket recompilen, selbst compilen und mit dpkg packen oder einen inoffiziellen Mirror suchen wo das Paket funktioniert statt rum-zu-heulen wie schlecht alles ist!

    Selbst ist der Mann
    Dem Debian Projekt wird auch nichts geschenkt.

    Grüße
    Robert

  7. Markus Majer sagt:

    Ich weiß, das gibt hier gleich ein großes Geschrei – aber dann nehmt doch die debian-basierte Distribution, die deshalb, weil es dort die oben genannten Probleme nicht gibt, Debian so langsam das Wasser abgräbt und bei LTS-Releases vom Supportzeitraum weit über dem von Debian liegt, bei trotzdem sehr aktuellen Paketen und enorm schnellen Bugfix:

    UBUNTU :)

    Ich weiß hier schlagen sich ein paar Debian-Jünger die Hände auf dem Kopf zusammen, aber versucht doch einfach mal “Ubuntu Server” und sagt mir was ihr davon haltet.

    Ich bin irgendwann gewechselt, da es mir gereicht hat – meine sources.list war eine Backports-Liste, viele der Backports zudem auch noch so kaputt wie oben genannt, und veraltete Versionen.

    Einfach mal ausprobieren.

  8. Khark sagt:

    Markus: Auch wenn du es nicht glauben magst, aber manchmal kann man sowas einfach nicht selbst entscheiden.
    Wenn die IT-Richtlinie sagt wir nehmen Distribution X dann muss man diese nehmen.
    Punkt. Aus. Ende.