Installazione PHP · 4 min read · Jan 23, 2026
Installazione di PHP 5.3, Nginx e PHP-fpm su Ubuntu/Debian
Installazione di PHP 5.3, Nginx e PHP-fpm su Ubuntu/Debian
Versione 1.1
Seguimi su Twitter
Poiché Apache è per la maggior parte del tempo un processo che consuma molta memoria, le persone hanno iniziato a cercare modi diversi per ospitare il proprio sito web. Apache non è chiaramente l’unico server web disponibile. Alcuni buoni esempi sono lighttpd e nginx. In questo tutorial ti mostrerò come installarlo sul tuo server Ubuntu. Questo tutorial si applica anche a Debian, anche se c’è solo una piccola differenza.
Pronto? Iniziamo, d’accordo.
Passo 0 - Note preliminari
Per completare questo tutorial, presumo che tu abbia installato un sistema base di Debian o Ubuntu. Come questo può essere fatto, può essere letto in diversi tutorial. Questo tutorial si concentra solo sull’ottenere nginx+php in esecuzione senza troppi problemi.
Passo 1 - Nginx
L’installazione di nginx è il primo passo che dobbiamo fare. Questo può essere facilmente fatto scaricandolo dal repository.
sudo apt-get install nginxIl vhost predefinito deve essere modificato per funzionare correttamente.
sudo vim /etc/nginx/sites-available/defaultUn buon punto di partenza per la tua configurazione è:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
## Posizione predefinita
location / {
root /var/www;
index index.php;
}
## Le immagini e i contenuti statici vengono trattati in modo diverso
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www;
}
## Analizza tutti i file .php nella directory /var/www
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
## Disabilita la visualizzazione di .htaccess e .htpassword
location ~ \/\.ht {
deny all;
}
}
upstream backend {
server 127.0.0.1:9000;
}
Ok, abbiamo finito qui. Ora installeremo i file necessari per PHP.
Passo 2 - Installazione di PHP
Molti siti si affidano a PHP per fornire contenuti dinamici, sia che si tratti di un wiki, di un software per forum, di un weblog o di qualcos’altro di completamente diverso.
Se stai eseguendo Ubuntu, dobbiamo prima risolvere due dipendenze richieste per i pacchetti dotdeb. Se stai eseguendo la versione amd64, dovresti sostituire i386 con amd64.
Per Debian non dovrai fare questo!
cd /tmpwget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.debwget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.debsudo dpkg -i *.debAncora una volta, questo è solo necessario se sei su Ubuntu.
Il resto del tutorial si applica sia a Ubuntu che a Debian.
Dobbiamo aggiungere il repository dotdeb alle fonti APT, in modo da poter utilizzare il loro PHP 5.3 e php-fpm impacchettati:
sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.listAggiorna apt:
sudo apt-get updateIl testo risultante dovrebbe includere dotdeb.
Ora installeremo PHP (parte 1):
sudo apt-get install php5-cli php5-common php5-suhosinDobbiamo installare il cli prima del resto, perché questo causerà problemi in seguito.
sudo apt-get install php5-fpm php5-cgiSe prevedi di utilizzare un database o richiedi moduli specifici (mcrypt, ldap, snmp, ecc.) puoi installarli anche.
Ok, quindi ora abbiamo nginx e PHP.
Una piccola nota: se stai usando “php short tags” ( ) dovresti abilitarli nei tuoi file php.ini (sia per fpm che per cli). Se non cambi questo, vedrai il tuo codice in testo semplice!
Passo 3 - Finalizzazione
Riavvia nginx per aggiornare le modifiche di configurazione che abbiamo fatto in precedenza.
sudo /etc/init.d/nginx restartIl riavvio dovrebbe essere andato senza problemi.
Dopo aver installato php5-fpm, dovrebbe essere stato avviato. Se hai modificato i tuoi file php.ini, devi riavviare php5-fpm.
sudo /etc/init.d/php5-fpm restartVa bene. Ora dovrebbero entrambi essere in esecuzione.
Passo 4 - Test
Per testare se l’esecuzione di PHP funziona, crea un file index.php in /var/www con il seguente contenuto:
Visita il tuo server web e dovresti essere in grado di vedere il phpinfo generato. Se non lo vedi, qualcosa è andato storto.
Passo 5 - Risoluzione dei problemi e note finali
Se non hai visto il phpinfo, potrebbe esserci qualcosa di sbagliato. Per rintracciare cosa è andato storto, puoi controllare il log degli errori di nginx:
sudo tail /var/log/nginx/error.logRicorda, se hai modificato il tuo php.ini devi riavviare php5-fpm. Non è necessario riavviare nginx.
Nel mio esempio di configurazione ho abilitato l’intercettazione degli errori fastcgi. Se si verifica un errore grave (ad esempio un “impossibile ridefinire la classe xyz”), nginx può catturare questa pagina e mostrare una “bella” pagina di errore che qualcosa è andato storto. In questo modo, vengono fornite meno informazioni nel caso in cui qualcosa vada seriamente storto.
Se non ti piace questo, puoi disattivarlo.
Se php5-fpm non è in esecuzione, i tuoi file PHP non possono essere analizzati e nginx mostrerà all’utente una pagina di errore.
Bene, credo che abbiamo finito e ora sei in grado di servire PHP con il tuo nuovo server web basato su nginx. Nginx è piuttosto bello e puoi configurare molto. Se hai bisogno di riscritture, fai attenzione che nginx non funziona con i file .htaccess. Dovrai modificare le impostazioni del tuo vhost affinché le riscritture funzionino.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.