Apache, fcgid und HTTP Authentifizierung mit PHP
Linux/OpenSource, PHP August 16th, 2008Gott, ich hasse schlecht dokumentierte Software! Ein echter Krampf sind die FastCGI und fcgid Module. fcgid sollte als (binärkompatibler) Nachfolger in die Fußstapfen des kaum gepflegten FastCGI Moduls treten. Das hat es sicherlich in mehrfacher Hinsicht geschafft: Die fcgid Webseite ist zum fürchten und sieht alles andere als professionell aus. Die Dokumentation ist eher dürftig und sinnvolle Beispiele für aktuelle Anwendungsfälle fehlen. (Rails, PHP, …)
Da ist die Dokumentation von Applikationen wie Typo3 hilfreicher, die aufzeigt wie man Typo3 mit fcgid betreibt.
Ganz so schwer war die Einrichtung von fcgid unter Ubuntu Linux dann auch nicht – jedoch funktionierte (argh, schon wieder!) die Authentifizierung per HTTP nicht mehr. Kennt man ja von FastCGI mit HTTP Authentification. (Also auch hier punktet fcgid als kompatibler Nachfolger von FastCGI…)
Die im Netz hauptsächlich vorzufindenden „Lösungen“ sehen dann so aus:
RewriteRule ^(.*)$ dispatch.fcgi [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
Man möge sich doch dann die Daten aus dem Environment klauben. Alle alten PHP Scripte und Applikationen umbauen – schon wieder? Nein! Gottseidank gibt es ein – selbstverständlich nicht dokumentiertes – Feature, dass fcgid (ab Version 2.2) mit dem Apache mod_fastcgi gleichziehen läßt (sic!):
Passheader Authorization
Nur wissen muss man es.
September 1st, 2008 at 14:12
Danke, das hat mir den Tag gerettet.
September 30th, 2011 at 09:58
Nachdem ich PHP mit FastCGI (mod_fcgid) auf einem Centos 5.7 betreibe, habe ich Probleme beim Login, z.B. Joomla, Typo3 etc. Ich vermute, dass es an der Problematik mit der http-authentifizierung liegt, die du beschreibst.
Sind die Servariablen _SERVER[„PHP_AUTH_USER“] und _SERVER[„PHP_AUTH_PW“] in PHP in der mod_fcgid Variante überhaupt verfügbar?
Wenn ich PHP als Modul einbinde, dann treten die Login-Probleme nicht auf.
September 30th, 2011 at 10:02
Der Login bei Joomla und Typo3 erfolgt m.W. ueber Formulare und nicht ueber HTTP-BASIC Authentifizierung. (Bei HTTP-BASIC kommt eine Dialogbox die der Browser nativ darstellt, bei Formular basiertem Login zeigt die Webanwendung ein eigenes Formular an, meist mit Logo und „Passwort vergessen“ Funktion.)
Ich glaub Dir natuerlich dass da ein Problem vorliegt, denn offensichtlich funktioniert es nicht wie gewuenscht 🙂
Ich wuerde mir mal die HTTP Header sowie die Request Daten (Chromium Developer Tolls / Firefox mit Firebug/LiveHTTPHeaders) genauer ansehen.
Und natuerlich das error_reporting logging hochdrehen bis zum Anschlag auf Entwicklungssystemen. Aber nie bei Produktivsystemen 🙂
September 30th, 2011 at 11:20
Ich benutze auch Collabtive und dort gibt es auch das Login Problem.
http://collabtive.o-dyn.de/forum/viewtopic.php?f=11&t=6572
März 11th, 2012 at 21:57
Dieser Eintrag rettet mir den Abend. Vielen Dank!