Ubuntu 14.04 – Apache 2.4 MPM Worker con PHP-FPM

Creato il 10 agosto 2014 da Morganfw

In questa guida vedremo come installare il webserver Apache 2.4 MPM Worker con PHP-FPM direttamente dai Repository di Ubuntu 14.04.
NOTA: L’editor di testo utilizzato da me è “vi“, ma se preferite, potete utilizzare l’editor di testo che più vi aggrada.

Apache MPM Worker è un modulo ad alte prestazioni in cui vengono creati vari processi figli di Apache, ognuno dei quali può contenere più thread, che a loro volta possono servire più connessioni. Questa modalità di esecuzione utilizza un quantitativo modesto di memoria. La modalità MPM Worker, in virtù dell’utilizzo dei thread multipli, è molto adatto a sistemi multiprocessore.

PHP-FPM è un’alternativa all’implementazione PHP FastCGI con alcune caratteristiche addizionali, utile per siti con alto carico di lavoro.

Dopo questa breve introduzione, passiamo alla pratica, quindi installiamo Apache Worker MPM (Multi-Processing Module)

sudo apt-get update & sudo apt-get install apache2-mpm-worker

una volta installato troveremo tutte le configurazioni sotto il path

/etc/apache2

a questo punto installiamo il modulo FastCGI per Apache e PHP5 FPM (FastCGI Process Manager)

sudo apt-get install libapache2-mod-fastcgi php5-fpm

se non dovesse essere possibile installarli con errori simili al seguente

[...]
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

verifichiamo di avere abilitato i “repository multiverse” sulla nostra Ubuntu 14.04

sudo vi /etc/apt/sources.list

aggiungendo o decommentando le seguenti linee

deb http://archive.ubuntu.com/ubuntu trusty multiverse
deb http://archive.ubuntu.com/ubuntu trusty-updates multiverse
deb http://archive.ubuntu.com/ubuntu trusty-security multiverse

ed eseguiamo l’update delle repo e l’installazione

sudo apt-get update & sudo apt-get install libapache2-mod-fastcgi php5-fpm

una volta installato tutto, modifichiamo il file di configurazione php5-fpm.conf

sudo vi /etc/apache2/conf-available/php5-fpm.conf

inserendo le direttive necessarie al funzionamento con Apache 2.4.X

<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 -socket /var/run/php5-fpm.sock -pass-header Authorization
    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
</IfModule>

salviamo ed usciamo (:wq!).
A questo punto abilitiamo tutti i moduli necessari

sudo a2enmod actions fastcgi alias

e le configurazioni di PHP5 FPM

sudo a2enconf php5-fpm

ed effettuiamo il reload delle configurazioni di Apache

sudo service apache2 reload

Se tutto è stato eseguito correttamente, non dovremmo avere errori, quindi procediamo con la verifica inserendo la pagina del phpinfo

sudo vi /var/www/html/info.php

inseriamo

<?php
        phpinfo();
?>

salviamo ed usciamo e da un browser accediamo al nosto file digitando
http://ip-del-server/info.php
se tutto è andato per la meglio, sotto Server API visualizzeremo FPM/FastCGI, quindi avremo terminato con successo la nostra configurazione base di Apache 2.4.X MPM Worker e PHP5-FPM.