Ricerca nel sito web

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.

Articoli correlati: