Questo tutorial passo dopo passo ti mostrerà come installare e configurare Nginx per eseguire PHP sul tuo server usando PHP-FPM.
Nginx + PHP è uno dei gruppi di 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 usando 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. L'utilizzo di questa versione PHP come interprete linguistico 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 pacchettizzazione apt.
sudo apt install nginx
CentOS / AlmaLinux / Rocky Linux
Per ottenere l'ultima versione di Nginx, gli utenti di 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 usando il dnf
gestore di pacchetti.
sudo dnf install nginx
2. Installazione di PHP-FPM
Ubuntu/Debian
Per installare PHP su Ubuntu o Debian, basta eseguire il seguente comando:
sudo apt install php-fpm
CentOS
La versione PHP disponibile per impostazione predefinita all'interno dei server CentOS è obsoleta. Per questo motivo, dovremo installare un repository di pacchetti di terze parti per ottenere PHP 7.
CentOS 7
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
CentOS 8
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.
Avremo bisogno di creare un file di configurazione del blocco del server Nginx per eseguire PHP con FPM. Successivamente, puoi creare un nuovo VirtualHost secondo le tue esigenze, 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 root
direttiva con la directory principale del tuo sito.
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
Salva le modifiche nel file di configurazione e crea un collegamento alla directory abilitata per il 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 nel fastcgi_pass
la direttiva è corretta.
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 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. Verifica della 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 un file di prova lì:
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 di PHP:
Conclusione
Congratulazioni! Hai impostato Nginx per gestire le richieste PHP tramite PHP-FPM.
Ci sono alcuni passi successivi che potresti fare da qui. Ad esempio, dovresti assicurarti che le connessioni al tuo server siano protette. Ma come si fa?
Segui il nostro tutorial passo passo per acquisire un certificato SSL Let's Encrypt gratuito per il tuo server.