Installazione Server · 6 min read · Dec 18, 2025

Installazione di Lighttpd con PHP5 (PHP-FPM) e MySQL su Debian 8 (Jessie)

Lighttpd è un server web sicuro, veloce e conforme agli standard, progettato per ambienti critici per la velocità. Questo tutorial mostra come puoi installare Lighttpd su un server Debian 8 (Jessie) con supporto PHP5 (tramite PHP-FPM) e supporto MySQL. 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. Utilizzo PHP-FPM in questo tutorial 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. Usa un server Debian minimale come base per questa installazione, questo può essere un’immagine minimale del tuo datacenter oppure puoi installarne uno da zero utilizzando il nostro tutorial sul server minimale Debian.

2 Installazione di MySQL / MariaDB

Debian 8 include 2 database compatibili con MySQL, il tradizionale database MySQL e MariaDB, un fork di MySQL mantenuto dall’inventore originale di MySQL Monty Widenius. MariaDB è attualmente leader in termini di velocità del database e attività di sviluppo, quindi la sceglierò per il mio server.

Di seguito descriverò l’installazione di MariaDB (Capitolo 2.1) e MySQL (Capitolo 2.2) in modo che tu possa scegliere il database che preferisci. Assicurati solo di seguire il capitolo 2.1 o 2.2 ma non entrambi.

2.1 Installare MariaDB

Per installare MariaDB, esegui questo comando.

apt-get install mariadb-server mariadb-client

Ti verrà chiesto di fornire una password per l’utente root di MariaDB - questa password è valida per l’utente root@localhost così come per [email protected], quindi non dobbiamo specificare manualmente una password root di MariaDB in seguito:

Nuova password per l'utente "root" di MariaDB: <-- yourrootsqlpassword  
Ripeti la password per l'utente "root" di MariaDB: <-- yourrootsqlpassword

2.2 Installare MySQL

Installiamo MySQL 5 in questo modo:

apt-get install mysql-server mysql-client

Ti 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 root di MySQL in seguito:

Nuova password per l’utente “root” di MySQL: <– yourrootsqlpassword
Ripeti la password per l’utente “root” di MySQL: <– yourrootsqlpassword

3 Installazione di Lighttpd

Lighttpd è disponibile come pacchetto Debian, quindi possiamo installarlo in questo modo:

apt-get install lighttpd

Ora indirizza il tuo browser a http://192.168.1.100/, e dovresti vedere la pagina segnaposto di Lighttpd:

La root del documento predefinita di Lighttpd è /var/www su Debian, 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 PHP5

Possiamo far funzionare PHP5 in Lighttpd tramite PHP-FPM che installiamo in questo modo:

apt-get install php5-fpm php5

PHP-FPM è un processo daemon (con lo script di init /etc/init.d/php5-fpm) che esegue un server FastCGI sul socket /var/run/php5-fpm.sock.

5 Configurazione di Lighttpd e PHP5

Per abilitare PHP5 in Lighttpd, dobbiamo modificare /etc/php5/fpm/php.ini e decommentare la riga cgi.fix_pathinfo=1:

nano /etc/php5/fpm/php.ini
[...]
; cgi.fix_pathinfo fornisce supporto *reale* per PATH_INFO/PATH_TRANSLATED per CGI.  Il comportamento precedente di PHP era impostare PATH_TRANSLATED su SCRIPT_FILENAME, e 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
[...]

E riavvia il servizio php5-fpm per applicare la modifica della configurazione:

systemctl restart php5-fpm.service

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-spawnfcgi.conf) e modifichiamo 15-fastcgi-php.conf come segue:

cd /etc/lighttpd/conf-available/  
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf  
nano 15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Avvia un server FastCGI per php (richiede il pacchetto php5-cgi)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php5-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

Per abilitare la configurazione fastcgi, esegui i seguenti comandi:

lighttpd-enable-mod fastcgi  
lighttpd-enable-mod fastcgi-php

Questo 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-enabled
root@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled  
total 0  
lrwxrwxrwx 1 root root 33 Aug 11 08:20 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf  
lrwxrwxrwx 1 root root 37 Aug 11 08:20 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

Poi ricarichiamo Lighttpd:

systemctl force-reload lighttpd.service

6 Testare PHP5 / Ottenere Dettagli sulla Tua Installazione di PHP5

La root del documento del sito web predefinito è /var/www. 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.php

Ora chiamiamo quel file in un browser (ad es. http://192.168.1.100/info.php):

PHPInfo per php-fpm su lighttpd.

Come puoi vedere, PHP5 sta funzionando, e sta funzionando tramite FPM/FastCGI, come mostrato nella riga Server API. Se scorri ulteriormente verso il basso, vedrai tutti i moduli che sono già abilitati in PHP5. MySQL non è elencato lì, il che significa che non abbiamo ancora supporto MySQL in PHP5.

7 Ottenere Supporto MySQL in PHP5

Per ottenere supporto MySQL in PHP, possiamo installare il pacchetto php5-mysqlnd. Questo è un nuovo driver di database compatibile con MySQL e MariaDB. È una buona idea installare anche alcuni altri moduli PHP5 poiché potresti averne bisogno per le tue applicazioni. Puoi cercare i moduli PHP5 disponibili in questo modo:

apt-cache search php5

Scegli quelli di cui hai bisogno e installali in questo modo:

apt-get install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Xcache è un cache opcode PHP gratuito e open source per la memorizzazione nella cache e l’ottimizzazione del codice intermedio PHP. È simile ad altri cache opcode PHP, come eAccelerator e APC. È fortemente consigliato avere uno di questi installato per velocizzare la tua pagina PHP.

Xcache può essere installato come segue:

apt-get install php5-xcache

Ora ricarica PHP-FPM:

systemctl restart php5-fpm.service

Ora ricarica http://192.168.1.100/info.php nel tuo browser e scorri di nuovo verso il basso nella sezione dei moduli. Dovresti ora trovare molti nuovi moduli lì, incluso il modulo MySQL:

Driver MySQL mostrato nell'output di phpinfo().

8 phpMyAdmin

phpMyAdmin è un’interfaccia web attraverso la quale puoi gestire i tuoi database MySQL. È una buona idea installarlo:

apt-get install phpmyadmin

Vedrai le seguenti domande:

Server web da riconfigurare automaticamente: <– lighttpd

selettore apt phpmyadmin lighttpd.

Configurare il database per phpmyadmin con dbconfig-common? <-- Sì  
Password dell'utente amministrativo del database: <-- yourrootsqlpassword  
Password dell'applicazione MySQL per phpmyadmin: <-- Premi 

Dopo, puoi accedere a phpMyAdmin all’indirizzo http://192.168.1.100/phpmyadmin/:

9 Far Usare a PHP-FPM una Connessione TCP

Per impostazione predefinita, PHP-FPM ascolta sul socket /var/run/php5-fpm.sock. È anche possibile far utilizzare a PHP-FPM una connessione TCP. Per fare ciò, apri /etc/php5/fpm/pool.d/www.conf…

nano /etc/php5/fpm/pool.d/www.conf

… e fai in modo che la riga listen appaia come segue:

[...]
;listen = /var/run/php5-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:

systemctl restart php5-fpm.service

Successivamente, apri il file di configurazione PHP di Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf e sostituisci la riga socket con le righe host e port:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Avvia un server FastCGI per php (richiede il pacchetto php5-cgi)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Infine ricarica Lighttpd:

systemctl force-reload lighttpd.service

10 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.