Come configurare Nginx per funzionare con PHP tramite PHP-FPM
Questo tutorial passo passo ti mostrerà come installare e configurare Nginx per eseguire PHP sul tuo server utilizzando PHP-FPM.
Nginx + PHP è uno dei gruppi software più popolari che puoi utilizzare per creare il tuo sito web. Questo tutorial passo passo ti mostrerà come installare e configurare Nginx per eseguire PHP sul tuo server utilizzando PHP-FPM.
Nginx è la combinazione ideale con PHP-FPM. È un server web stabile riconosciuto per le sue prestazioni impressionanti e il basso consumo di risorse.
PHP viene eseguito come servizio isolato quando si utilizza PHP-FPM. Utilizzando questa versione PHP come interprete del linguaggio significa che le richieste verranno elaborate tramite un socket UNIX. Il server Nginx gestirà solo le richieste HTTP, mentre PHP-FPM interpreta il codice PHP.
1. Installazione di Nginx
Ubuntu/Debian
Poiché Nginx è disponibile nei repository predefiniti di Debian e Ubuntu, è possibile installarlo da questi repository utilizzando il sistema di pacchetto apt.
sudo apt install nginx
CentOS/AlmaLinux/Rocky Linux
Per ottenere l'ultima versione di Nginx, gli utenti CentOS, AlmaLinux o Rocky Linux devono prima installare il repository EPEL.
EPEL (Extra Packages for Enterprise Linux) è un progetto di repository open source e gratuito basato sulla comunità del team Fedora che fornisce pacchetti software aggiuntivi di alta qualità per distribuzioni Linux basate su RHEL.
sudo yum install epel-release
Quindi puoi installare il server Nginx.
sudo yum install nginx
Fedora
Nginx è disponibile sui repository Fedora predefiniti e può essere installato direttamente utilizzando il gestore pacchetti dnf
.
sudo dnf install nginx
Correlato: Come installare il server Web Nginx su Linux
2. Installazione di PHP-FPM
Ubuntu/Debian
Per installare PHP su Ubuntu o Debian, esegui semplicemente il seguente comando:
sudo apt install php-fpm
CentOS
La versione PHP disponibile per impostazione predefinita nei server CentOS è obsoleta. Per questo motivo, dovremo installare un repository di pacchetti di terze parti per ottenere PHP 7.
CentOS7
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
CentOS8
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
3. Configurazione di NGINX per eseguire PHP utilizzando PHP-FPM
Una volta installati Nginx e PHP, possiamo configurare Nginx per inviare richieste PHP a PHP-FPM.
Dovremo creare un file di configurazione del blocco server Nginx per eseguire PHP con FPM. Successivamente, puoi creare un nuovo VirtualHost secondo i tuoi requisiti, abilitando qualsiasi nuovo VirtualHost.
sudo vim /etc/nginx/sites-available/example.com
Sostituisci example.com
con il dominio o l'indirizzo IP del tuo sito e la direttiva root
con la directory principale del tuo sito.
<strong>server</strong> {
<strong> listen</strong> 80;
<strong> root</strong> /var/www/html;
<strong> index</strong> index.php index.html index.htm;
<strong> server_name</strong> example.com;
<strong> location</strong> / {
<strong> try_files</strong> $uri $uri/ =404;
}
<strong> location</strong> ~ \.php$ {
<strong> include</strong> snippets/fastcgi-php.conf;
<strong> fastcgi_pass</strong> unix:/var/run/php/php7.4-fpm.sock;
}
}
Salva le modifiche nel file di configurazione e crea un collegamento alla directory abilitata dal sito.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
Assicurati che il nome del file socket PHP (nel nostro caso php7.4-fpm.sock
) specificato nella direttiva fastcgi_pass
sia corretto.
ls -l /var/run/php/
total 4
-rw-r--r-- 1 root root 5 Dec 1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data 0 Dec 1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root root 30 Dec 1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock
Se il nome è diverso da php7.4-fpm.sock
, sostituiscilo semplicemente nel blocco server mostrato sopra con quello corrente dal tuo server.
Quindi riavvia il servizio Nginx per ricaricare le modifiche.
sudo systemctl restart nginx.service
4. Testare la configurazione
Crea un file PHP di prova per verificare che PHP-FPM funzioni e sia integrato con Nginx. Nel Blocco Server sopra, il nostro sito viene servito da /var/www/html
, quindi creeremo lì un file di prova:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Infine, accedi a info.php
da un browser web, utilizzando il dominio del tuo sito o l'indirizzo IP del server. Dovresti vedere la pagina di configurazione PHP:
Conclusione
Congratulazioni! Hai configurato Nginx per gestire le richieste PHP tramite PHP-FPM.
Ci sono alcuni passi successivi che potresti intraprendere da qui. Ad esempio, dovresti assicurarti che le connessioni al tuo server siano protette. Ma come farlo?
Segui il nostro tutorial passo passo per acquisire un certificato SSL Let's Encrypt gratuito per il tuo server.