Esta seção contém notas e dicas específicas para instalações Lighttpd 1.4 do PHP em sistemas Unix.
Favor acessar o link » Lighttpd trac para aprende a instalar o Lighttpd adequadamente antes de continuar.
FastCGI é o método SAPI preferido para conectar o PHP ao Lighttpd. FastCGI é habilitado automagicamente no php-cgi.
Para configurar o Lighttpd para se conectar ao PHP e iniciar processos FastCGI, edite o arquivo lighttpd.conf. Sockets são a maneira preferida de se conectar a processos FastCGI no sistema local.
Exemplo #1 lighttpd.conf parcial
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 )) )
A diretiva bin-path permite ao lighttpd iniciar processos FastCGI dinamicamente.
O PHP irá iniciar processos-filhos de acordo com a variável de ambiente PHP_FCGI_CHILDREN.
A diretiva bin-environment
define o embiente para os
processos inciados. O PHP irá fechar um processo filho depois que o número
de requisições especificados por PHP_FCGI_MAX_REQUESTS for alcançado. As diretivas
min-procs
e max-procs
devem geralmente ser evitadas com o PHP. O PHP
gerencia seus próprios processos filhos, e caches opcode como APC somente irão compartilhar dados entre
filhos gerenciados pelo PHP. Se min-procs
for definido para algo maior que 1
,
o número total de respondedores php será a multiplicação por PHP_FCGI_CHILDREN
(2 min-procs * 16 filhos são 32 respondedores).
Lighttpd fornece um programa chamado spawn-fcgi para tornar a tarefa de iniciar processos FastCGI mais fácil.
É possível iniciar processos sem o spawn-fcgi, porém um pouco mais de esforço é requerido. Configurar a variável de ambiente PHP_FCGI_CHILDREN controla quantos processos filhos do PHP irão iniciar para lidar com as requisições que chegam. Configurar PHP_FCGI_MAX_REQUESTS irá determinar por quanto tempo (em requisições) cada filho ficará ativo. Aqui está um script bach simples para ajudar a ininicar respondedores php.
Exemplo #2 Iniciando Respondedores FastCGI
#!/bin/sh # Localização do binário php-cgi PHP=/usr/local/bin/php-cgi # Localização do arquivo PID PHP_PID=/tmp/php.pid # Ligação a um endereço #FCGI_BIND_ADDRESS=10.0.1.1:10000 # Ligação a um socket 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"
Instâncias FastCGI podem ser iniciadas em máquinas remotas múltiplas para expandir aplicações.
Exemplo #3 Conectando a instâncias remotas de php-fastcgi
fastcgi.server = ( ".php" => (( "host" => "10.0.0.2", "port" => 1030 ), ( "host" => "10.0.0.3", "port" => 1030 )) )