mod_auth_mysql und ISP+Etch - Printable Version +- ispCP - Board - Support (http://www.isp-control.net/forum) +-- Forum: ispCP Omega International Area (/forum-22.html) +--- Forum: German Corner (/forum-26.html) +--- Thread: mod_auth_mysql und ISP+Etch (/thread-2947.html) |
mod_auth_mysql und ISP+Etch - winex - 04-06-2008 07:34 PM Hallo, ist vielleicht etwas Offtopic, jedoch habe ich ein Problem und hoffe das ich hier hilfe finde. Zur Sachlage: Server läuft unter Debian Etch, mit ISP RC4. Jetzt sollte ich von einen Kunden ein in PHP programiertes Serviceportal hosten. Dieser nutzt für die Authentifizierung die PHP funktion "$_SERVER['PHP_AUTH_USER]" in Verbindung mit MySql Abfrage. Ich bin kein PHP Profi, jedoch ging ich nach meinen Informtionsstand "google" davon aus, das es an den fehlenden Apache2 "mod_auth_mysql" in etch lag. So habe ich diesen nachträglich kompiliert anhand dieser Anleitung: http://www.marderhund.org/blog/index.php/archives/2007/12/27/debian-etch-apache2-mysql-authentication/ Das Problem bliebt jedoch weiterhin. Es erscheint zwar das Login Fenster, jedoch bewirkt die Eingabe des Login nix, stattdessen kommt das Login Fenster immer wieder. In den Logs erscheint darüber nix. Kann mir vielleicht jemand helfen? RE: mod_auth_mysql und ISP+Etch - joximu - 04-06-2008 08:12 PM es liegt daran, dass php via fastcgi gestartet wird. das sollte in google helfen. Ich habe bei mir die fastcgi_ispcp.conf ein wenig angepasst: Code: FastCgiConfig -minProcesses 1 \ dieses -pass-header .... ist wichtig. Danach muss man aber die PHP Applikation ein wenig anpassen, weil nun user und passwort in einer Variablen übergeben wird - mit base64 codierung oder so... weiter bin ich nicht gekommen, hatte grad keine Zeit dazu... /J RE: mod_auth_mysql und ISP+Etch - winex - 04-06-2008 08:25 PM Danke für den Tip, hier noch das stück PHP-Code das für die Authentifikation zuständig ist. Quote:// --------------------------- RE: mod_auth_mysql und ISP+Etch - Cube - 04-06-2008 08:31 PM $_SERVER['PHP_AUTH_USER'] hat doch nichts mit MySQL zu tun, sondern speichert den Namen des gerade über die HTTP Authentifizierung angemeldeten Users. Diese Variable funktioniert unter php über fastcgi nicht (worüber ich mich auch schon geärgert habe, wie so über vieles was unter fastcgi nicht geht). Es gibt zwei Möglichkeiten: - entweder du aktivierst -pass-header HTTP_AUTHORIZATION in der fastcgi-Config und greifst dann auf die Daten über $_SERVER['Authorization'] zu (wie schon joximu schrieb) - oder du verwendest $_SERVER['REDIRECT_REMOTE_USER'] - damit kannst du aber nur PHP_AUTH_USER ersetzen, an das Passwort (PHP_AUTH_PW) kommst du auf diese Weise nicht ran. RE: mod_auth_mysql und ISP+Etch - joximu - 04-06-2008 10:40 PM die Variable $_SERVER["Authorization"]) enthält sowas wie string(18) "Basic Zm9vOmJhcg==" das muss dann den String 'Zm9vOmJhcg==' mit base64 decodieren und erhälst 'foo:bar' als Antwort - und da ist foo der User und bar das Kennwort... Das ganze klappt zumindest, wenn der Basic Algorithmus in der HTTP-Auth methode gesetzt ist zB: header('WWW-Authenticate: Basic realm="...."'); /J RE: mod_auth_mysql und ISP+Etch - winex - 04-06-2008 10:48 PM Wie müsste dann der php-code oben aussehen damit das klappt? RE: mod_auth_mysql und ISP+Etch - joximu - 04-06-2008 11:17 PM wenn ich das fertig gemacht hätte, hätte ich ihn gleich gepostet, aber so musst du vielleicht selbst etwas überlegen... das könnte ein Ansatz sein Code: $aAuth = explode(' ', $_SERVER['Authorization']); wäre noch zu vervollständigen..., du kannst das Ergebnis von base64_decode natürlich nochmals mit explode ':' aufteilen, dann hast du eingegebener User und Kennwort getrennt. Gruss J RE: mod_auth_mysql und ISP+Etch - winex - 04-06-2008 11:32 PM Danke, werde mich mal versuchen. Übrigens suche ich für mein Business schon eine weile einen fähigen Helfer. Bin hier in der Region Nürnberg. RE: mod_auth_mysql und ISP+Etch - Zothos - 04-07-2008 07:55 PM @joxi -idle-timout muss zum fastcgi-server! nicht zur config RE: mod_auth_mysql und ISP+Etch - joximu - 04-07-2008 09:18 PM danke zothos - war halt mal früher so... werd ich dann irgendwann mal ändern... es ging ja um das -pass-header... :-) |