<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/install.unix.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'install.unix.lighttpd-14.php',
    1 => 'Lighttpd 1.4 em sistemas Unix',
    2 => 'Lighttpd 1.4 em sistemas Unix',
  ),
  'up' => 
  array (
    0 => 'install.unix.php',
    1 => 'Instala&ccedil;&atilde;o em sistemas Unix',
  ),
  'prev' => 
  array (
    0 => 'install.unix.nginx.php',
    1 => 'Nginx 1.4.x em sistemas Unix',
  ),
  'next' => 
  array (
    0 => 'install.unix.litespeed.php',
    1 => 'Servidores Web LiteSpeed/OpenLiteSpeed em sistemas Unix',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'install/unix/lighttpd-14.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="install.unix.lighttpd-14" class="sect1">
 <h2 class="title">Lighttpd 1.4 em sistemas Unix</h2>

 <p class="para">
  Esta seção contém notas e dicas específicas para instalações Lighttpd 1.4
  do PHP em sistemas Unix.
 </p>

 <p class="para">
  Favor acessar o link <a href="http://trac.lighttpd.net/trac/" class="link external">&raquo;&nbsp;Lighttpd trac</a>
  para aprender a instalar o Lighttpd adequadamente antes de continuar.
 </p>

 <p class="para">
  FastCGI é o método SAPI preferido para conectar o PHP ao Lighttpd. FastCGI é
  habilitado automaticamente no php-cgi.
 </p>

 <div class="sect2" id="install.unix.lighttpd-14.lighttpd-spawn">
  <h3 class="title">Deixando o Lighttpd iniciar processos PHP</h3>

  <p class="para">
   Para configurar o Lighttpd para se conectar ao PHP e iniciar processos FastCGI, edite
   o arquivo <var class="filename">lighttpd.conf</var>. Sockets são a maneira preferida de se conectar a processos FastCGI
   no sistema local.
  </p>

  <div class="example" id="example-1">
   <p><strong>Exemplo #1 lighttpd.conf parcial</strong></p>
   <div class="example-contents screen">
<div class="cdata"><pre>
server.modules += ( &quot;mod_fastcgi&quot; )

fastcgi.server = ( &quot;.php&quot; =&gt;
  ((
    &quot;socket&quot; =&gt; &quot;/tmp/php.socket&quot;,
    &quot;bin-path&quot; =&gt; &quot;/usr/local/bin/php-cgi&quot;,
    &quot;bin-environment&quot; =&gt; (
      &quot;PHP_FCGI_CHILDREN&quot; =&gt; &quot;16&quot;,
      &quot;PHP_FCGI_MAX_REQUESTS&quot; =&gt; &quot;10000&quot;
    ),
    &quot;min-procs&quot; =&gt; 1,
    &quot;max-procs&quot; =&gt; 1,
    &quot;idle-timeout&quot; =&gt; 20
  ))
)
</pre></div>

   </div>
  </div>

  <p class="para">
   A diretiva <var class="filename">bin-path</var> permite ao lighttpd iniciar processos FastCGI dinamicamente.
   O PHP irá iniciar processos-filhos de acordo com a variável de ambiente <var class="envar">PHP_FCGI_CHILDREN</var>.
   A diretiva <code class="literal">bin-environment</code> define o ambiente para os
   processos iniciados. O PHP irá fechar um processo filho depois que o número
   de requisições especificados por <var class="envar">PHP_FCGI_MAX_REQUESTS</var> for alcançado. As diretivas
   <code class="literal">min-procs</code> e <code class="literal">max-procs</code> 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 <code class="literal">min-procs</code> for definido para algo maior que <code class="literal">1</code>,
   o número total de processos PHP será a multiplicação por <var class="envar">PHP_FCGI_CHILDREN</var>
   (2 min-procs * 16 filhos são 32 processos).
  </p>
 </div>

 <div class="sect2" id="install.unix.lighttpd-14.spawn-fcgi">
  <h3 class="title">Iniciando processos com spawn-fcgi</h3>

  <p class="para">
   Lighttpd fornece um programa chamado spawn-fcgi para tornar a tarefa
   de iniciar processos FastCGI mais fácil.
  </p>
 </div>

 <div class="sect2" id="install.unix.lighttpd-14.spawn-php">
  <h3 class="title">Iniciando processo com php-cgi</h3>

  <p class="para">
   É possível iniciar processos sem o spawn-fcgi, porém um pouco mais
   de esforço é requerido. Configurar a variável de ambiente <var class="envar">PHP_FCGI_CHILDREN</var>
   controla quantos processos filhos do PHP irão iniciar para lidar com as requisições que chegam.
   Configurar <var class="envar">PHP_FCGI_MAX_REQUESTS</var> irá determinar por quanto tempo (em requisições) cada
   filho ficará ativo. Aqui está um script bash simples para ajudar a iniciar processos PHP.
  </p>

  <div class="example" id="example-2">
   <p><strong>Exemplo #2 Iniciando processos FastCGI</strong></p>
   <div class="example-contents screen">
<div class="cdata"><pre>
#!/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 &amp;

echo $! &gt; &quot;$PHP_PID&quot;

</pre></div>
   </div>
  </div>
 </div>

 <div class="sect2" id="install.unix.lighttpd-14.remote-fcgi">
  <h3 class="title">Conectando a instâncias remotas FCGI</h3>

  <p class="para">
   Instâncias FastCGI podem ser iniciadas em máquinas remotas múltiplas para
   expandir aplicações.
  </p>

  <div class="example" id="example-3">
   <p><strong>Exemplo #3 Conectando a instâncias remotas de php-fastcgi</strong></p>
   <div class="example-contents screen">
<div class="cdata"><pre>
fastcgi.server = ( &quot;.php&quot; =&gt;
   (( &quot;host&quot; =&gt; &quot;10.0.0.2&quot;, &quot;port&quot; =&gt; 1030 ),
    ( &quot;host&quot; =&gt; &quot;10.0.0.3&quot;, &quot;port&quot; =&gt; 1030 ))
)
</pre></div>
   </div>
  </div>
 </div>
</div><?php manual_footer($setup); ?>