Apache HTTP Server è lo strumento principe per approntare server web ed erogare così contenuti come quello che state leggendo in questo momento. Se però desideriamo utilizzare un gestore di contenuti (CMS) come Wordpress o uno strumento di eCommerce come Magento o Prestashop abbiamo bisogno anche dell'interprete PHP. In questa guida vedremo dunque come configurare Apache per elaborare codice PHP tramite PHP-FPM.

Guida Apache PHP 7.3: come attivare/installare PHP-FPM Apache Ubuntu/CentOS

Nel prosieguo mi riferirò al software "Apache HTTP Server" chiamandolo solo "Apache", per semplicità e per risultare più colloquiale.

Passo 1: Installare Apache e PHP-FPM

Per prima cosa è necessario che sul PC o server sia già stato installato Apache. Abbiamo proposto la guida passo per passo in questo approfondimento:

» Leggi: Guida server web: come installare Apache su Linux Ubuntu/CentOS

Guida Apache PHP 7.3: come attivare/installare PHP-FPM Apache Ubuntu/CentOS - apache2 ubuntu default page

È inoltre indispensabile installare il pacchetto PHP e, in particolare, PHP-FPM. L'approfondimento dedicato, con tutti i comandi da impartire, è disponibile qui:

» Leggi: Come installare PHP 7.3 (PHP-FPM)

Guida Apache PHP 7.3: come attivare/installare PHP-FPM Apache Ubuntu/CentOS - 04_php-v_installed

Passo 2: Aprire il Terminale come root

Assicuratevi ora di aprire il Terminale e di acquisire i privilegi di root impartendo

sudo -s

In caso dovesse esservi richiesta la password, digitate quella dell'account corrente.

In alternativa, potete utilizzare il vostro utente "normale" ed anteporre sudo ad ogni comando mostrato di seguito.... ma divenire root immediatamente è molto più comodo.

Passo 3: Abilitare mod_proxy_fcgi

Procediamo dunque ad abilitare proxy_fcgi: è il modulo di Apache che utilizzeremo per interfacciare il server web con PHP-FPM. Il comando è:

  • Ubuntu: a2enmod proxy_fcgi
  • CentOS: nulla da fare (è già attivo di default)

Passo 4: Scaricare apache_php-proxy-fCgi.conf

Dobbiamo ora configurare Apache di modo che, concretamente, si connetta a PHP-FPM per interpretare le pagine PHP.

Scarichiamo dunque il file di configurazione per Apache già parzialmente preparato. Il comando è:

  • Ubuntu: curl https://turbolab.it/scarica/169 -o /etc/apache2/mods-enabled/php-proxy-fcgi.conf
  • CentOS: rm -f /etc/httpd/conf.modules.d/*php*.conf && curl https://turbolab.it/scarica/169 -o /etc/httpd/conf.modules.d/php-proxy-fcgi.conf

Poiché abbiamo salvato il file di configurazione nella cartella specifica, Apache lo auto-caricherà insieme agli altri ad ogni avvio del servizio.

Passo 5: Specificare il percorso del socket

Affinché la comunicazione fra Apache e PHP-FPM funzioni correttamente è necessario che i due servizi impieghino un socket condiviso: nella configurazione standard, si tratta di un file su disco. Il percorso di tale file deve essere inserito in due punti:

  • nel file di configurazione di Apache che abbiamo appena scaricato
  • nel file di configurazione di PHP-FPM

Fate riferimento al capitoletto Passo 7: Scoprire il socket di PHP-FPM della nostra guida a PHP per scoprire quale sia il percorso di questo socket, quindi confrontatelo con quello presente nel file php-proxy-fcgi.conf scaricato poco fa: i due devono essere assolutamente uguali, carattere per carattere.

Apriamo dunque con l'editor il file scaricato poco fa:

  • Ubuntu: nano /etc/apache2/mods-enabled/php-proxy-fcgi.conf
  • CentOS: nano /etc/httpd/conf.modules.d/php-proxy-fcgi.conf

Notiamo la riga che inizia con la direttiva SetHandler: è proprio qui che dobbiamo specificare dove si trova il socket di PHP-FPM. Inserire dunque il percorso del socket dopo il prefisso proxy:unix:. Mantenere inalterato tutto il resto. Esempio:

SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://127.0.0.1:9000/"

Dove /run/php/php7.3-fpm.sock è il percorso del socket.

Notate che è presente una barra (/) come ultimo carattere: deve essere mantenuta

Guida Apache PHP 7.3: come attivare/installare PHP-FPM Apache Ubuntu/CentOS - apache_proxy_socket

Salvate il documento e chiudere l'editor.

Passo 6: Rimuovere DirectoryIndex

Dobbiamo infine apportare una modifica alla direttiva DirectoryIndex di Apache che stabilisce quale file restituire quando l'utente richiede via browser una directory oppure il dominio del nostro sito senza indicare un file specifico (esempio: http://miosito.com). Di default, Apache restituisce index.html, ma per generare dinamicamente la pagina "home" con PHP dobbiamo usare index.php.

Il file di configurazione scaricato al Passo 4 include già la direttiva configurata in modo opportuno, ma per renderla effettiva dobbiamo disattivare il default di Apache tramite questo comando:

  • Ubuntu: sed -i -e 's/DirectoryIndex/#DirectoryIndex/g' /etc/apache2/mods-available/dir.conf
  • CentOS: sed -i -e 's/DirectoryIndex/#DirectoryIndex/g' /etc/httpd/conf/httpd.conf

In alternativa, potete svolgere la stessa modifica tramite un editor di testo:

  1. aprire il file di configurazione generale di Apache
  2. cercate la direttiva DirectoryIndex index.html
  3. anteponetevi il carattere # ("cancelletto", simbolo di "commento") per disattivarla

Guida Apache PHP 7.3: come attivare/installare PHP-FPM Apache Ubuntu/CentOS

Salvare e chiudere l'editor.

Passo 7: Riavviare Apache

Procediamo ora a riavviare Apache per rendere effettive le modifiche. Il comando è:

  • Ubuntu: systemctl restart apache2
  • CentOS: systemctl restart httpd

Passo 8: È tutto pronto!

Se non vengono mostrati messaggi di errore, significa che è tutto pronto. Fare riferimento alla guida generale a PHP-FPM per proseguire con le verifiche:

» Leggi: Come installare PHP 7.3 (PHP-FPM)

Guida Apache PHP 7.3: come attivare/installare PHP-FPM Apache Ubuntu/CentOS