<?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 => 'it',
  ),
  'this' => 
  array (
    0 => 'install.unix.lighttpd-14.php',
    1 => 'Lighttpd 1.4 su sistemi Unix',
    2 => 'Lighttpd 1.4 su sistemi Unix',
  ),
  'up' => 
  array (
    0 => 'install.unix.php',
    1 => 'Installazione su sistemi Unix',
  ),
  'prev' => 
  array (
    0 => 'install.unix.nginx.php',
    1 => 'Nginx 1.4.x on Unix systems',
  ),
  'next' => 
  array (
    0 => 'install.unix.litespeed.php',
    1 => 'LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'it',
    '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 su sistemi Unix</h2>

 <p class="para">
  Questa sezione contiene note e suggerimenti specifici per installazioni
di PHP per Lighttpd 1.4 su sistemi Unix.
 </p>

 <p class="para">
  Si prega di utilizzare <a href="http://trac.lighttpd.net/trac/" class="link external">&raquo;&nbsp;Lighttpd trac</a>
  per imparare come installare Lighttpd correttamente prima di continuare.
 </p>
 
 <p class="para">
  Fastcgi è il SAPI consigliato per connettersi a PHP e Lighttpd. Fastcgi è abilitato
  automagicamente in php-cgi in PHP 5.3, ma per versioni precedenti è necessario
  configurare PHP con --enable-fastcgi. Per avere conferma che PHP abbia fastcgi abilitato,
  <code class="literal">php -v</code> dovrebbe contenere <code class="literal">PHP 5.2.5 (cgi-fcgi)</code>
  Prima di PHP 5.2.3, fastcgi era abilitato sulla versione compilata di php (non esisteva alcun php-cgi).
 </p>
 
 <div class="sect2" id="install.unix.lighttpd-14.lighttpd-spawn">
  <h3 class="title">Consentire a Lighttpd di generare processi php</h3>

  <p class="para">
   Per configurare Lighttpd per la connessione con php e generare processi fastcgi, editare
   lighttpd.conf. Si consiglia di eseguire le connessioni ai processi fastcgi 
sul sistema locale tramite socket.
  </p>

  <div class="example" id="example-1">
   <p><strong>Example #1 Estratto di lighttpd.conf</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">
   La direttiva bin-path consente a lighttpd di generare processi fastcgi dinamicamente.
   PHP genererà processi figli in accordo con la variabile di ambiente PHP_FCGI_CHILDREN.  
   La direttiva &quot;bin-environment&quot; imposta l&#039;ambiente per i processi generati.
   PHP terminerà i processi generati dopo che il numero di richieste specificato in
   PHP_FCGI_MAX_REQUESTS sia stato raggiunto. L&#039;uso delle direttive &quot;min-procs&quot; e &quot;max-procs&quot;
   è sconsigliato relativamente a PHP. PHP
   gestisce autonomamente i propri processi figlio e la cache opcode come APC viene condivisa
   unicamente tra processi gestiti da PHP. Se &quot;min-procs&quot; è impostata ad un numero maggiore di 1,
   il numero totale di risponditori di php sarà moltiplicato per PHP_FCGI_CHILDREN
   (2 min-procs * 16 processi dà come risultato 32 risponditori).
  </p>
 </div>

 <div class="sect2" id="install.unix.lighttpd-14.spawn-fcgi">
  <h3 class="title">Spawning with spawn-fcgi</h3>  

  <p class="para">
   Lighttpd fornisce un programma chiamato spawn-fcgi per facilitare la generazione di processi
   fastcgi.
  </p>
 </div>

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

  <p class="para">
   E&#039; possibile generare processi senza spawn-fcgi, ma il procedimento è più complicato.
   L&#039;impostazione della variabile di ambiente PHP_FCGI_CHILDREN controlla quanti processi figlio
   saranno generati da PHP per gestire le richieste ricevute.
   L&#039;impostazione di PHP_FCGI_MAX_REQUESTS determinerà quanto a lungo (in termini di richieste) ogni processo figlio dovrà durare.
   Segue un semplice script bash per generare risponditori php.
  </p>
     
  <div class="example" id="example-2">
   <p><strong>Example #2 Generazione di risponditori FastCGI</strong></p>
   <div class="example-contents screen">
<div class="cdata"><pre>
#!/bin/sh

# Location of the php-cgi binary
PHP=/usr/local/bin/php-cgi

# PID File location
PHP_PID=/tmp/php.pid

# Binding to an address
#FCGI_BIND_ADDRESS=10.0.1.1:10000
# Binding to a domain 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">Connessione a istanze di FCGI remote</h3>

  <p class="para">
   Le istanze di Fastcgi possono essere generate su macchine remote multiple per consentire
   la scalabilità delle applicazioni.
  </p>
   
  <div class="example" id="example-3">
   <p><strong>Example #3 Connessione a istanze di php-fastcgi remote</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); ?>