Alla fine ho trovato un bel tutorial orientato a fare proprio questo. Descriverò i passaggi che ho fatto poiché avevo già installato il mio stack LAMP, ma il tutorial completo è disponibile qui .
Nota per il nuovo:
Nel tutorial, inizia passando all'utente root con:
sudo su
Nel mio caso ho semplicemente prefissato quei comandi sudo
invece di cambiare utente, quindi documenterò i miei passi in quel modo.
Inizio
Fase 1: installare Apache Worker MPM (moduli multi-processione)
sudo apt-get install apache2-mpm-worker
Questo sostituisce il prefork che avevo installato, che è l'impostazione predefinita durante l'installazione di Apache.
Passaggio 2: installare PHP5 e i moduli necessari
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
A questo punto potresti ricevere un errore durante l'installazione di 'libapache2-mod-fastcgi':
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'libapache2-mod-fastcgi' has no installation candidate
Questa parte non è nel tutorial sopra
Per riconciliare questo, il multiverse
repository deve essere aggiunto alle origini apt.
Per farlo:
sudo nano /etc/apt/sources.list
A cui ho aggiunto le seguenti righe:
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
precise
in questo caso si riferisce alla mia versione di Ubuntu " Precise Pangolin ".
Quindi ora, salva quelle modifiche e torna al terminale:
sudo apt-get update
e di nuovo:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
che ora dovrebbe (dovrebbe) funzionare.
Ora abilita questi moduli Apache:
sudo a2enmod actions fastcgi alias
riavvia apache
sudo service apache2 restart
Passaggio 3: configurazione di Apache
Per far funzionare Apache con PHP-FPM, abbiamo bisogno della seguente configurazione:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
#directory statement mult be on multiple lines
</IfModule>
Nota:
Se stai usando una versione precedente di Apache (2.3.xo precedente), lascia fuori la linea
<Directory /usr/lib/cgi-bin> Require all granted </Directory>
Puoi controllare la tua versione installata con il comando
apache2 -version
Puoi inserirlo nella configurazione globale di Apache (quindi è abilitato per tutti i vhosts), ad esempio in /etc/apache2/conf.d/php5-fpm.conf
(questo file non esiste, quindi devi crearlo), oppure puoi inserirlo in ogni vhost che dovrebbe usare PHP-FPM.
Ho scelto di seguire la strada globale, quindi:
sudo nano /etc/apache2/conf.d/php5-fpm.conf
incolla il blocco di codice sopra e salva, esci. Questo nuovo file verrà caricato automaticamente dalla configurazione predefinita di Apache che carica tutti i file nella /etc/apache2/conf.d/
directory.
riavvia Apache:
sudo service apache2 restart
Ora crea il seguente file PHP nella radice del documento /var/www
:
sudo nano /var/www/info.php
Inserisci:
<?php phpinfo();
salva ed esci.
Ora chiamiamo quel file in un browser (ad es. http://your-server-ip/info.php
)
Sotto Server API in alto dovresti vedere FPM/FastCGI
.
Successo!
Per ulteriori informazioni su come modificare PHP-FPM in modo da utilizzare un socket unix anziché la porta TCP predefinita o come configurarlo per singoli host virtuali anziché tutti, consultare l'esercitazione di origine collegata in alto.