PHP, 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.

  1. phpMyId und PHP mittels FastCGI
  2. PHP FastCGI Path Bug (Ubuntu Hardy)
  3. Ubuntu Server: PHP, FastCGI, APC und Apache threaded
  4. Apache, fcgid und HTTP Authentifizierung mit PHP
  5. Xhtml basic/xhtml MP: Input mode für Zahlen (digits)
  6. Ubuntu Upgrade: Warning: SuexecUserGroup directive requires SUEXEC wrapper.
  7. phpbb3 mit php als cgi: malformed header from script
  8. Phpbb3 und mod_gzip – mysteriöse Probleme