Cette section contient des informations spécifiques sur l'installation de PHP avec Lighttpd 1.4 sur les systèmes Unix.
Reportez-vous à » Lighttpd pour une installation correcte de Lighttpd avant de continuer.
FastCGI est le SAPI préféré pour connecter PHP et Lighttpd. FastCGI active automatiquement php-cgi.
Pour configurer Lighttpd afin qu'il se connecte à PHP et appelle le processus FastCGI, vous devez éditez le fichier lighttpd.conf. Une connexion par sockets est la solution préférée pour les systèmes locaux.
Exemple #1 Portion du fichier lighttpd.conf
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
  ((
    "socket" => "/tmp/php.socket",
    "bin-path" => "/usr/local/bin/php-cgi",
    "bin-environment" => (
      "PHP_FCGI_CHILDREN" => "16",
      "PHP_FCGI_MAX_REQUESTS" => "10000"
    ),
    "min-procs" => 1,
    "max-procs" => 1,
    "idle-timeout" => 20
  ))
)
   La directive bin-path permet à lighttpd d'appeler le processus FastCGI
   dynamiquement. PHP appellera les fils suivant la variable d'environnement
   PHP_FCGI_CHILDREN. La directive bin-environment définit l'environnement
   pour les processus appelés. PHP terminera un processus fils lorsque le
   nombre de requêtes spécifié par PHP_FCGI_MAX_REQUESTS a été atteint.
   Les directives min-procs et max-procs peuvent généralement être ignorées
   avec PHP. PHP gère ces propres fils et caches opcode comme APC qui partage
   uniquement les fils gérés par PHP. Si min-procs est défini à quelque chose
   de supérieur à 1, le nombre total de réponses PHP sera multiplié par
   PHP_FCGI_CHILDREN (2 min-procs * 16 fils, donne 32 réponses).
  
Lighttpd fournit un programme appelé spawn-fcgi afin de rendre plus facile les appels des processus FastCGI.
Il est possible d'appeler des processus sans spawn-fcgi, avec un minimum de configuration. La variable d'environnement PHP_FCGI_CHILDREN contrôle le nombre de fils que PHP appelle pour gérer les demandes. La variable d'environnement PHP_FCGI_MAX_REQUESTS détermine la durée de vie, en nombre de requêtes, de chaque fils. Voici un script bash simple qui permet d'aider les appels aux répondeurs PHP.
Exemple #2 Appel des répondeurs FastCGI
#!/bin/sh
# Localisation du binaire php-cgi
PHP=/usr/local/bin/php-cgi
# Localisation  du fichier PID
PHP_PID=/tmp/php.pid
# Liaison à une adresse
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Liaison à un socket du domaine
FCGI_BIND_ADDRESS=/tmp/php.sock
PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000
env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
       PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
       $PHP -b $FCGI_BIND_ADDRESS &
echo $! > "$PHP_PID"
Les instances FastCGI peuvent être appelées sur plusieurs machines distantes afin de répartir les applications.
Exemple #3 Connexion à des instances distantes de php-fastcgi
fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)