PHP Installation · 11 min read · Nov 04, 2025

Come installare PHP 7.1, 7.2 e 5.6 come PHP-FPM e FastCGI per ISPConfig 3 su Debian 9

Debian 9 include PHP 7.0 come versione PHP predefinita. Le versioni principali di PHP non sono 100% compatibili tra loro, quindi un sito web potrebbe richiedere una versione PHP più recente o più vecchia per funzionare. ISPConfig supporta l’uso di più versioni PHP sullo stesso server, la versione PHP può essere selezionata per ciascun sito web individualmente nelle impostazioni del sito web. Questo tutorial mostra come installare PHP 7.1, 7.2 e 5.6 in modalità FPM e FCGI insieme a PHP 7.0 su un server Debian 9. Le versioni PHP aggiuntive vengono installate nella cartella /opt, quindi la loro installazione non influisce sulla versione PHP predefinita.

UPDATE: Si consiglia di installare versioni PHP aggiuntive su Debian e Ubuntu tramite pacchetti ora. Il tutorial può essere trovato qui: https://www.howtoforge.com/tutorial/how-to-install-php-7-for-ispconfig-3-from-debian-packages-on-debian-8-and-9/

1 Nota preliminare

Installerò PHP 7.1, 7.2 e 5.6. Si prega di notare che PHP-FPM può essere utilizzato sia su server Apache che Nginx, mentre FastCGI è disponibile solo per server Apache.

2 Installa i prerequisiti

Installa i prerequisiti per la compilazione di PHP e l’editor nano che userò per modificare i file di configurazione:

apt-get install build-essential nano
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dev libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include  
ln -s x86_64-linux-gnu/curl

(L’ultimo comando è necessario se si compila PHP con –with-imap, perché altrimenti ./configure si fermerà con il seguente errore:

checking for crypt in -lcrypt... yes  
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.  
root@server1:/usr/local/src/php5-build/php-7.1.14#

)

3 Compila PHP 7.1 come PHP-FPM e Fastcgi

Scarica e estrai l’archivio PHP:

mkdir -p /opt/php-7.1  
mkdir /usr/local/src/php7.1-build  
cd /usr/local/src/php7.1-build  
wget http://de2.php.net/get/php-7.1.14.tar.bz2/from/this/mirror -O php-7.1.14.tar.bz2  
tar jxf php-7.1.14.tar.bz2
cd php-7.1.14/

Configura e compila PHP 7.1 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un’occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se usi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive, oppure il processo di compilazione fallirà):

./configure --prefix=/opt/php-7.1 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

L’ultimo switch ( –enable-fpm) garantisce che questa versione di PHP funzioni con PHP-FPM.

make  
make install

Copia php.ini e php-fpm.conf nelle posizioni corrette:

cp /usr/local/src/php7.1-build/php-7.1/php.ini-production /opt/php-7.1/lib/php.ini
cp /opt/php-7.1/etc/php-fpm.conf.default /opt/php-7.1/etc/php-fpm.conf  
cp /opt/php-7.1/etc/php-fpm.d/www.conf.default /opt/php-7.1/etc/php-fpm.d/www.conf

Apri /opt/php-7.1/etc/php-fpm.conf e modifica la seguente impostazione (rimuovi il ; davanti alla riga pid):

nano /opt/php-7.1/etc/php-fpm.conf
[...]  
pid = run/php-fpm.pid  
[...]  

Quindi apri /opt/php-7.1/etc/php-fpm.d/www.conf e modifica la riga listen, devi usare una porta non utilizzata (ad esempio 8999; la porta 9000 potrebbe essere già in uso dal PHP-FPM predefinito di Debian):

nano /opt/php-7.1/etc/php-fpm.d/www.conf
[...]  
listen = 127.0.0.1:8999  
[...]  

3.1 Crea il file di unità systemd

Successivamente, creeremo il file di unità di sistema che viene utilizzato per avviare e fermare il demone PHP-FPM.

nano /lib/systemd/system/php-7.1-fpm.service

con il seguente contenuto:

[Unit]  
Description=Il gestore di processi FastCGI PHP 7.1  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-7.1/var/run/php-fpm.pid  
ExecStart=/opt/php-7.1/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.1/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Abilita il servizio e ricarica systemd:

systemctl enable php-7.1-fpm.service  
systemctl daemon-reload

Infine, avvia PHP-FPM.

systemctl start php-7.1-fpm.service

Per abilitare Zend OPcache, apri /opt/php-7.1/lib/php.ini…

nano /opt/php-7.1/lib/php.ini

… e aggiungi la seguente riga alla fine:

[...]  
zend_extension=opcache.so

3.2 Abilita Memcache (opzionale)

In questo capitolo, compilerò e abiliterò l’estensione PHP Memcached.

Il primo passo è installare il pacchetto libmemcached-dev da Debian.

apt-get install libmemcached-dev

Quindi crea una directory, scarica l’estensione PHP memcache da Github, estrai l’archivio e entra nella directory che contiene i file estratti.

mkdir /usr/local/src/php7.1-build/php-memcache  
cd /usr/local/src/php7.1-build/php-memcache  
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip  
unzip php7.zip  
cd php-memcached-php7

Prepara le sorgenti eseguendo il comando phpize da PHP 7.1.

/opt/php-7.1/bin/phpize

Configura e compila l’estensione PHP memcache.

./configure --with-php-config=/opt/php-7.1/bin/php-config  
make  
make install

Per abilitare l’estensione Memcache, apri /opt/php-7.1/lib/php.ini…

nano /opt/php-7.1/lib/php.ini

… e aggiungi la seguente riga alla fine:

[...]  
extension=memcached.so

3.3 Installa l’estensione xDebug (opzionale)

Il modulo xDebug è un’estensione di debug per PHP. L’installazione è facoltativa.

Installa xDebug con questi comandi.

cd /opt/php-7.1/etc  
../bin/pecl -C ./pear.conf update-channels  
../bin/pecl -C ./pear.conf install xdebug

Quindi modifica il file php.ini con un editor:

nano /opt/php-7.1/lib/php.ini

e aggiungi la seguente riga alla fine del file:

zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so

Infine riavvia il demone php-fpm:

systemctl start php-7.1-fpm.service

Testa la versione di PHP:

cd /opt/php-7.1/bin  
./php --version

L’output dovrebbe essere simile a questo screenshot.

Si prega di notare: Lo screenshot è di PHP 7.1.14, il tutorial viene aggiornato continuamente per nuove versioni di PHP, ma non prendiamo nuovi screenshot ogni volta, quindi la versione PHP che vedrai sul tuo server potrebbe essere più recente. La versione attuale di questo tutorial è per php-7.1.14.

3.4 Abilita PHP 7.1 in ISPConfig

In ISPConfig 3.1, puoi configurare la nuova versione PHP sotto Sistema > Versioni PHP aggiuntive. Nella scheda Nome, devi semplicemente compilare un nome per la versione PHP (ad esempio, PHP 7.1) - questa versione PHP sarà elencata sotto questo nome nelle impostazioni del sito web in ISPConfig:

PHP 7.1

Vai alla scheda Impostazioni FastCGI e compila i campi come segue:

Percorso del binario PHP FastCGI: /opt/php-7.1/bin/php-cgi  
Percorso della directory php.ini: /opt/php-7.1/lib

PHP 7.1 FCGI

Quindi vai alla scheda Impostazioni PHP-FPM e compila i campi come segue:

Percorso dello script di inizializzazione PHP-FPM: php-7.1-fpm  
Percorso della directory php.ini: /opt/php-7.1/lib  
Percorso della directory del pool PHP-FPM: /opt/php-7.1/etc/php-fpm.d  

PHP 7.1 FPM

4 Compila PHP 7.2 come PHP-FPM e Fastcgi

Scarica e estrai PHP da php.net e decomprimi il file tar.bz2:

mkdir -p /opt/php-7.2  
mkdir /usr/local/src/php7.2-build  
cd /usr/local/src/php7.2-build  
wget http://de2.php.net/get/php-7.2.2.tar.bz2/from/this/mirror -O php-7.2.2.tar.bz2  
tar jxf php-7.2.2.tar.bz2
cd php-7.2.2/

Configura e compila PHP 7.2 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un’occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se usi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive, oppure il processo di compilazione fallirà):

./configure --prefix=/opt/php-7.2 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

L’ultimo switch ( –enable-fpm) garantisce che questa versione di PHP funzioni con PHP-FPM.

make  
make install

Copia php.ini e php-fpm.conf nelle posizioni corrette:

cp /usr/local/src/php7.2-build/php-7.2.2/php.ini-production /opt/php-7.2/lib/php.ini
cp /opt/php-7.2/etc/php-fpm.conf.default /opt/php-7.2/etc/php-fpm.conf  
cp /opt/php-7.2/etc/php-fpm.d/www.conf.default /opt/php-7.2/etc/php-fpm.d/www.conf

Apri /opt/php-7.2/etc/php-fpm.conf e modifica la seguente impostazione (rimuovi il ; davanti alla riga pid):

nano /opt/php-7.2/etc/php-fpm.conf
[...]  
pid = run/php-fpm.pid  
[...]  

Quindi apri /opt/php-7.2/etc/php-fpm.d/www.conf e modifica la riga listen, devi usare una porta non utilizzata (ad esempio 8998; la porta 9000 potrebbe essere già in uso dal PHP-FPM predefinito di Debian):

nano /opt/php-7.2/etc/php-fpm.d/www.conf
[...]  
listen = 127.0.0.1:8998  
[...]  

4.1 Crea il file di unità systemd

Successivamente, creeremo il file di unità di sistema che viene utilizzato per avviare e fermare il demone PHP-FPM.

nano /lib/systemd/system/php-7.2-fpm.service

con il seguente contenuto:

[Unit]  
Description=Il gestore di processi FastCGI PHP 7.2  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-7.2/var/run/php-fpm.pid  
ExecStart=/opt/php-7.2/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.2/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Abilita il servizio e ricarica systemd:

systemctl enable php-7.2-fpm.service  
systemctl daemon-reload

Infine, avvia PHP-FPM.

systemctl start php-7.2-fpm.service

Per abilitare Zend OPcache, apri /opt/php-7.2/lib/php.ini…

nano /opt/php-7.2/lib/php.ini

… e aggiungi la seguente riga alla fine:

[...]  
zend_extension=opcache.so

4.2 Abilita Memcache (opzionale)

In questo capitolo, compilerò e abiliterò l’estensione PHP Memcached.

Il primo passo è installare il pacchetto libmemcached-dev da Debian.

apt-get install libmemcached-dev

Quindi crea una directory, scarica l’estensione PHP memcache da Github, estrai l’archivio e entra nella directory che contiene i file estratti.

mkdir /usr/local/src/php7.2-build/php-memcache  
cd /usr/local/src/php7.2-build/php-memcache  
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip  
unzip php7.zip  
cd php-memcached-php7

Prepara le sorgenti eseguendo il comando phpize da PHP 7.2.

/opt/php-7.2/bin/phpize

Configura e compila l’estensione PHP memcache.

./configure --with-php-config=/opt/php-7.2/bin/php-config  
make  
make install

Per abilitare l’estensione Memcache, apri /opt/php-7.2/lib/php.ini…

nano /opt/php-7.2/lib/php.ini

… e aggiungi la seguente riga alla fine:

[...]  
extension=memcached.so

4.3 Installa l’estensione xDebug (opzionale)

Il modulo xDebug è un’estensione di debug per PHP. L’installazione è facoltativa.

Installa xDebug con questi comandi.

cd /opt/php-7.2/etc  
pecl -C ./pear.conf update-channels  
pecl -C ./pear.conf install xdebug

Quindi modifica il file php.ini con un editor:

nano /opt/php-7.2/lib/php.ini

e aggiungi la seguente riga alla fine del file:

zend_extension=/opt/php-7.2/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so

Infine riavvia il demone php-fpm:

systemctl start php-7.2-fpm.service

Testa la versione di PHP:

cd /opt/php-7.2/bin  
./php --version

L’output dovrebbe essere simile a questo screenshot.

Si prega di notare: Lo screenshot è di PHP 7.2.2, il tutorial viene aggiornato continuamente per nuove versioni di PHP, ma non prendiamo nuovi screenshot ogni volta, quindi la versione PHP che vedrai sul tuo server potrebbe essere più recente. La versione attuale di questo tutorial è per php-7.2.2.

4.4 Abilita PHP 7.2 in ISPConfig

In ISPConfig 3.1, puoi configurare la nuova versione PHP sotto Sistema > Versioni PHP aggiuntive. Nella scheda Nome, devi semplicemente compilare un nome per la versione PHP (ad esempio, PHP 7.2) - questa versione PHP sarà elencata sotto questo nome nelle impostazioni del sito web in ISPConfig:

PHP 7.2

Vai alla scheda Impostazioni FastCGI e compila i campi come segue:

Percorso del binario PHP FastCGI: /opt/php-7.2/bin/php-cgi  
Percorso della directory php.ini: /opt/php-7.2/lib

PHP 7.1 FCGI

Quindi vai alla scheda Impostazioni PHP-FPM e compila i campi come segue:

Percorso dello script di inizializzazione PHP-FPM: php-7.2-fpm  
Percorso della directory php.ini: /opt/php-7.2/lib  
Percorso della directory del pool PHP-FPM: /opt/php-7.2/etc/php-fpm.d  

PHP 7.2 FPM

5 Compila PHP 5.6 come PHP-FPM e Fastcgi

Scarica PHP e decomprimi l’archivio tar.bz2:

mkdir -p /opt/php-5.6  
mkdir /usr/local/src/php5.6-build  
cd /usr/local/src/php5.6-build  
wget http://de2.php.net/get/php-5.6.33.tar.bz2/from/this/mirror -O php-5.6.33.tar.bz2  
tar jxf php-5.6.33.tar.bz2

La versione di OpenSSL in Debian 9 è troppo nuova per PHP 5.6, quindi dovremo compilare una versione più vecchia in /opt/openssl per usarla con PHP 5.6.

cd /tmp  
wget "https://www.openssl.org/source/old/1.0.1/openssl-1.0.1t.tar.gz"  
tar xzf openssl-1.0.1t.tar.gz   
cd openssl-1.0.1t  
./config shared --prefix=/opt/openssl  
make -j $(nproc) && make install  
ln -s /opt/openssl/lib /opt/openssl/lib/x86_64-linux-gnu  
wget -O /opt/openssl/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem"

Crea un symlink in modo che PHP trovi le librerie freetype, libcrypto e libssl.

mkdir /usr/include/freetype2/freetype  
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h  
ln -s /opt/openssl/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/  
ln -s /opt/openssl/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/  
ln -fs /opt/openssl /usr/local/ssl

Entra nella cartella che contiene i file sorgente PHP estratti.

cd /usr/local/src/php5.6-build/php-5.6.33/

Configura e compila PHP 5.6 come segue (puoi adattare il comando ./configure alle tue esigenze, dai un’occhiata a

./configure --help

per vedere tutte le opzioni disponibili; se usi un comando ./configure diverso, è possibile che siano necessarie librerie aggiuntive, oppure il processo di compilazione fallirà):

./configure --prefix=/opt/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl=/opt/openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

L’ultimo switch ( –enable-fpm) garantisce che questa versione di PHP funzioni con PHP-FPM.

make  
make install

Copia php.ini e php-fpm.conf nelle posizioni corrette:

cp /usr/local/src/php5.6-build/php-5.6.33/php.ini-production /opt/php-5.6/lib/php.ini
cp /opt/php-5.6/etc/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.conf
mkdir -p /opt/php-5.6/etc/php-fpm.d

Apri /opt/php-5.6/etc/php-fpm.conf e modifica la seguente impostazione:

nano /opt/php-5.6/etc/php-fpm.conf
[...]  
pid = run/php-fpm.pid  
[...]  
user = www-data  
group = www-data  
[...]  
listen = 127.0.0.1:8997  
[...]  
include=/opt/php-5.6/etc/php-fpm.d/*.conf

5.1 Crea il file di unità systemd

Successivamente, creeremo il file di unità di sistema che viene utilizzato per avviare e fermare il demone PHP-FPM.

nano /lib/systemd/system/php-5.6-fpm.service

con il seguente contenuto:

[Unit]  
Description=Il gestore di processi FastCGI PHP 5.6  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-5.6/var/run/php-fpm.pid  
ExecStart=/opt/php-5.6/sbin/php-fpm --nodaemonize --fpm-config /opt/php-5.6/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Abilita il servizio e ricarica systemd:

systemctl enable php-5.6-fpm.service  
systemctl daemon-reload

Infine, avvia PHP-FPM.

systemctl start php-5.6-fpm.service

Per abilitare Zend OPcache, apri /opt/php-5.6/lib/php.ini…

nano /opt/php-5.6/lib/php.ini

… e aggiungi la seguente riga alla fine:

[...]  
zend_extension=opcache.so

5.2 Abilita Memcache (opzionale)

In questo capitolo, compilerò e abiliterò l’estensione PHP Memcached.

Il primo passo è installare il pacchetto libmemcached-dev da Debian.

apt-get install libmemcached-dev

Quindi esegui questi comandi per costruire l’estensione memcache

cd /opt/php-5.6/etc  
pecl -C ./pear.conf update-channels  
pecl -C ./pear.conf install memcache

Per abilitare l’estensione Memcache, apri /opt/php-5.6/lib/php.ini…

nano /opt/php-5.6/lib/php.ini

… e aggiungi la seguente riga alla fine:

[...]  
extension=memcache.so

Infine riavvia il demone php-fpm:

systemctl start php-5.6-fpm.service

Testa la versione di PHP:

cd /opt/php-5.6/bin  
./php --version

L’output dovrebbe essere simile a questo screenshot.

Si prega di notare: Lo screenshot è di PHP 5.6.33, il tutorial viene aggiornato continuamente per nuove versioni di PHP, ma non prendiamo nuovi screenshot ogni volta, quindi la versione PHP che vedrai sul tuo server potrebbe essere più recente. La versione attuale di questo tutorial è per php-5.6.33.

5.4 Abilita PHP 5.6 in ISPConfig

In ISPConfig 3.1, puoi configurare la nuova versione PHP sotto Sistema > Versioni PHP aggiuntive. Nella scheda Nome, devi semplicemente compilare un nome per la versione PHP (ad esempio, PHP 5.6) - questa versione PHP sarà elencata sotto questo nome nelle impostazioni del sito web in ISPConfig:

PHP 5.6

Vai alla scheda Impostazioni FastCGI e compila i campi come segue:

Percorso del binario PHP FastCGI: /opt/php-5.6/bin/php-cgi  
Percorso della directory php.ini: /opt/php-5.6/lib

PHP 5.6 FCGI

Quindi vai alla scheda Impostazioni PHP-FPM e compila i campi come segue:

Percorso dello script di inizializzazione PHP-FPM: php-5.6-fpm  
Percorso della directory php.ini: /opt/php-5.6/lib  
Percorso della directory del pool PHP-FPM: /opt/php-5.6/etc/php-fpm.d  

PHP 5.6 FPM

6 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.