Installazione Server · 8 min read · Oct 31, 2025
Installazione di Lighttpd con PHP 7 (PHP-FPM) e MySQL 5.7 su Ubuntu 16.04 LTS
Lighttpd è un server web sicuro, veloce e conforme agli standard, progettato per ambienti critici per la velocità. Questo tutorial mostra come installare Lighttpd su un server Ubuntu 16.04 con supporto PHP 7 (tramite PHP-FPM) e MySQL 5.7. PHP-FPM (FastCGI Process Manager) è un’implementazione alternativa di PHP FastCGI con alcune funzionalità aggiuntive utili per siti di qualsiasi dimensione, specialmente per quelli più trafficati. In questo tutorial utilizzo PHP-FPM invece di spawn-fcgi di Lighttpd.
1 Nota Preliminare
In questo tutorial, utilizzo il nome host server1.example.com con l’indirizzo IP 192.168.1.100. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato.
Eseguo tutti i passaggi in questo tutorial con privilegi di root, quindi assicurati di essere loggato come root:
sudo -s2 Installazione di MySQL 5.7
Per prima cosa, installiamo MySQL in questo modo:
apt-get -y install mysql-server mysql-clientTi verrà chiesto di fornire una password per l’utente root di MySQL - questa password è valida per l’utente root@localhost così come per [email protected], quindi non dobbiamo specificare manualmente una password di root di MySQL in seguito:
Nuova password per l’utente MySQL “root”: <– yourrootsqlpassword
Ripeti la password per l’utente MySQL “root”: <– yourrootsqlpassword

L’installatore ha impostato una password di root per MySQL, ma ci sono alcune altre impostazioni che dovrebbero essere modificate per un’installazione sicura di MySQL. Questo può essere fatto con il comando mysql_secure_installation.
mysql_secure_installationIl comando è interattivo:
root@server1:~# mysql_secure_installationProteggere il deployment del server MySQL.Inserisci la password per l'utente root: <-- Inserisci la password di root di MySQLVALIDATE PASSWORD PLUGIN può essere utilizzato per testare le password
e migliorare la sicurezza. Controlla la forza della password
e consente agli utenti di impostare solo quelle password che sono
sufficientemente sicure. Vuoi configurare il plugin VALIDATE PASSWORD?Premi y|Y per Sì, qualsiasi altro tasto per No: <-- Premi y se vuoi questa funzione o premi Invio altrimenti.
Utilizzando la password esistente per root.
Cambiare la password per root? ((Premi y|Y per Sì, qualsiasi altro tasto per No) : <-- Premi invio... salto.
Per impostazione predefinita, un'installazione di MySQL ha un utente anonimo,
che consente a chiunque di accedere a MySQL senza dover avere
un account utente creato per loro. Questo è inteso solo per
testare e per rendere l'installazione un po' più fluida.
Dovresti rimuoverli prima di passare a un ambiente di produzione.Rimuovere gli utenti anonimi? (Premi y|Y per Sì, qualsiasi altro tasto per No) : <-- y
Successo.
Normalmente, a root dovrebbe essere consentito di connettersi solo da
'localhost'. Questo garantisce che qualcuno non possa indovinare
la password di root dalla rete.Negare l'accesso remoto a root? (Premi y|Y per Sì, qualsiasi altro tasto per No) : <-- y
Successo.Per impostazione predefinita, MySQL viene fornito con un database chiamato 'test' che
chiunque può accedere. Questo è anche inteso solo per testare,
e dovrebbe essere rimosso prima di passare a un ambiente di produzione.
Rimuovere il database di test e l'accesso ad esso? (Premi y|Y per Sì, qualsiasi altro tasto per No) : <-- y
- Eliminazione del database di test...
Successo.- Rimozione dei privilegi sul database di test...
Successo.Ricaricare le tabelle dei privilegi garantirà che tutte le modifiche
fatte finora abbiano effetto immediato.Ricaricare le tabelle dei privilegi ora? (Premi y|Y per Sì, qualsiasi altro tasto per No) : <-- y
Successo.Tutto fatto!3 Installazione di Lighttpd
Lighttpd è disponibile come pacchetto Ubuntu. Pertanto, possiamo installarlo direttamente con apt dal repository dei pacchetti di Ubuntu Xenial Xerus:
apt-get -y install lighttpdOra indirizza il tuo browser a http://192.168.1.100/, e dovresti vedere la pagina segnaposto di Lighttpd:

La radice del documento predefinita di Lighttpd è /var/www/html su Ubuntu, e il file di configurazione è /etc/lighttpd/lighttpd.conf. Ulteriori configurazioni sono memorizzate in file nella directory /etc/lighttpd/conf-available - queste configurazioni possono essere abilitate con il comando lighttpd-enable-mod che crea un symlink dalla directory /etc/lighttpd/conf-enabled al file di configurazione appropriato in /etc/lighttpd/conf-available. Puoi disabilitare le configurazioni con il comando lighttpd-disable-mod.
4 Installazione di PHP 7.0
Possiamo far funzionare PHP in Lighttpd tramite PHP-FPM che installiamo in questo modo:
apt-get -y install php7.0-fpm php7.0PHP-FPM è un processo daemon (con lo script di init php5-fpm) che esegue un server FastCGI sul socket /var/run/php/php7.0-fpm.sock.
5 Configurazione di Lighttpd e PHP 7.0
Per abilitare PHP in Lighttpd, dobbiamo modificare /etc/php/7.0/fpm/php.ini e decommentare la riga cgi.fix_pathinfo=1:
nano /etc/php/7.0/fpm/php.ini[...]
; cgi.fix_pathinfo fornisce supporto *reale* per PATH_INFO/PATH_TRANSLATED per CGI. Il comportamento precedente di PHP era di impostare PATH_TRANSLATED su SCRIPT_FILENAME, e di non comprendere
; cosa sia PATH_INFO. Per ulteriori informazioni su PATH_INFO, vedere le specifiche cgi. Impostare
; questo su 1 farà sì che PHP CGI corregga i suoi percorsi per conformarsi alla specifica. Un'impostazione
; di zero fa sì che PHP si comporti come prima. Il valore predefinito è 1. Dovresti correggere i tuoi script
; per utilizzare SCRIPT_FILENAME piuttosto che PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]Il file di configurazione di Lighttpd per PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf è adatto per l’uso con spawn-fcgi, tuttavia, vogliamo utilizzare PHP-FPM, quindi creiamo un backup del file (chiamato 15-fastcgi-php.conf.bak) e modifichiamo 15-fastcgi-php.conf come segue:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak
nano 15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Avvia un server FastCGI per php (richiede il pacchetto php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"socket" => "/var/run/php/php7.0-fpm.sock",
"broken-scriptfilename" => "enable"
))
)Per abilitare la configurazione fastcgi, esegui i seguenti comandi:
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-phpQuesto crea i symlink /etc/lighttpd/conf-enabled/10-fastcgi.conf che punta a /etc/lighttpd/conf-available/10-fastcgi.conf e /etc/lighttpd/conf-enabled/15-fastcgi-php.conf che punta a /etc/lighttpd/conf-available/15-fastcgi-php.conf:
ls -l /etc/lighttpd/conf-enabledroot@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Apr 27 11:26 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Apr 27 11:26 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
lrwxrwxrwx 1 root root 42 Apr 21 11:10 90-javascript-alias.conf -> ../conf-available/90-javascript-alias.conf
root@server1:/etc/lighttpd/conf-available#Poi ricarichiamo Lighttpd:
service lighttpd force-reloadNota: Se ricevi errori di localizzazione, puoi rimuovere l’errore utilizzando
apt-get -y install language-pack-en-base
dpkg-reconfigure locales6 Testare PHP 7.0 / Ottenere Dettagli sulla tua Installazione di PHP
La radice del documento del sito web predefinito è /var/www/html. Ora creeremo un piccolo file PHP (info.php) in quella directory e lo chiameremo in un browser. Il file mostrerà molti dettagli utili sulla nostra installazione di PHP, come la versione di PHP installata.
nano /var/www/html/info.phpOra chiamiamo quel file in un browser (ad es. http://192.168.1.100/info.php):

Come puoi vedere, PHP 7.0 sta funzionando, e sta funzionando tramite FPM/FastCGI, come mostrato nella riga Server API. Se scorri più in basso, vedrai tutti i moduli che sono già abilitati in PHP5. MySQL non è elencato lì, il che significa che non abbiamo ancora supporto per MySQL in PHP.
7 Ottenere supporto MySQL in PHP
Per ottenere supporto MySQL in PHP, possiamo installare il pacchetto php7.0-mysql. È una buona idea installare anche alcuni altri moduli PHP poiché potresti averne bisogno per le tue applicazioni. Puoi cercare i moduli PHP disponibili in questo modo:
apt-cache search php7.0Scegli quelli di cui hai bisogno e installali in questo modo:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettextAPCu è un’estensione per il modulo PHP Opcache che viene fornito con PHP 7, aggiunge alcune funzionalità di compatibilità per il software che supporta la cache APC (ad es. plugin di cache di Wordpress).
APCu può essere installato come segue:
apt-get -y install php-apcuOra ricarica PHP-FPM:
service php7.0-fpm reloadOra ricarica http://192.168.1.100/info.php nel tuo browser e scorri di nuovo fino alla sezione dei moduli. Dovresti ora trovare molti nuovi moduli lì, incluso il modulo mysqli e mysqlnd:

8 phpMyAdmin
phpMyAdmin è un’interfaccia web attraverso la quale puoi gestire i tuoi database MySQL. È una buona idea installarlo:
apt-get -y install phpmyadminVedrai le seguenti domande:
Web server da riconfigurare automaticamente: <-- lighttpd
Configurare il database per phpmyadmin con dbconfig-common? <-- Sì
Password dell'applicazione MySQL per phpmyadmin: <-- Premi InvioSe ricevi il seguente errore:
Esegui /etc/init.d/lighttpd force-reload per abilitare le modifiche
dpkg: errore durante l'elaborazione del pacchetto phpmyadmin (--configure):
sottoprocesso installato script di post-installazione restituito codice di uscita errore 2
E: Sottoprocesso /usr/bin/dpkg ha restituito un codice di errore (1)Allora esegui questi comandi:
/etc/init.d/lighttpd force-reload
apt-get -y install phpmyadminDopo, puoi accedere a phpMyAdmin all’indirizzo http://192.168.1.100/phpmyadmin/:

9 Far utilizzare a PHP-FPM una connessione TCP (Opzionale)
Per impostazione predefinita, PHP-FPM sta ascoltando sul socket /var/run/php/php7.0-fpm.sock. È anche possibile far utilizzare a PHP-FPM una connessione TCP. Per fare ciò, apri /etc/php/7.0/fpm/pool.d/www.conf…
nano /etc/php/7.0/fpm/pool.d/www.conf… e fai in modo che la riga di ascolto appaia come segue:
[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]Questo farà sì che PHP-FPM ascolti sulla porta 9000 sull’IP 127.0.0.1 (localhost). Assicurati di utilizzare una porta che non sia in uso sul tuo sistema.
Poi ricarica PHP-FPM:
service php7.0-fpm reloadSuccessivamente, apri il file di configurazione PHP di Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf e sostituisci la riga del socket con le righe host e porta:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Avvia un server FastCGI per php (richiede il pacchetto php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)Infine ricarica Lighttpd:
service lighttpd force-reload10 Link
- Lighttpd: http://www.lighttpd.net/
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Ubuntu: http://www.ubuntu.com/
- phpMyAdmin: http://www.phpmyadmin.net/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.