PHP Basic Authentication und FastCGI mit Apache2
Linux/OpenSource, PHP Februar 25th, 2008PHP, Apache2 und FastCGI bringt neben ein paar Annehmlichkeiten einen Haufen Probleme mit. So funktioniert z.B. die gewohnte WWW-Authenticate “Basic Authentication” nicht mehr wie gewohnt.
Das wird durch verschiedene Faktoren bestimmt:
Das mod_fastcgi muss so konfiguriert werden, dass die entsprechenden Header weitergereicht werden. Bei Apache 1 ist es HTTP_AUTHORIZATION – Apache2 verwendet den standardkonformen “Authorization” HTTP Header.
Dafür sieht dann die FastCGI Konfiguration etwa so aus:
FastCgiConfig -pass-header Authorization -pass-header HTTP_AUTHORIZATION
PHP – zumindest in der aktuellen Version – wertet diesen Header offenbar nicht aus.
Dazu bedarf es dann eines kleines PHP Snippets als Workaround. Oder Zend behebt das Problem mal.
if (isset($_SERVER['Authorization']) && !empty($_SERVER['Authorization']))
{
list ($type, $cred) = split (" ", $_SERVER['Authorization']);
if ($type == 'Basic')
{
list ($user, $pass) = explode (":", base64_decode($cred));
$_SERVER['PHP_AUTH_USER'] = $user;
$_SERVER['PHP_AUTH_PW'] = $pass;
}
}
Der Rest funktioniert dann wie gewohnt.
- phpMyId und PHP mittels FastCGI
- PHP FastCGI Path Bug (Ubuntu Hardy)
- Ubuntu Server: PHP, FastCGI, APC und Apache threaded
- Apache, fcgid und HTTP Authentifizierung mit PHP
- Xhtml basic/xhtml MP: Input mode für Zahlen (digits)
- Ubuntu Upgrade: Warning: SuexecUserGroup directive requires SUEXEC wrapper.
- phpbb3 mit php als cgi: malformed header from script
- Phpbb3 und mod_gzip – mysteriöse Probleme

August 16th, 2008 at 13:19
[...] 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 [...]