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 nanoapt-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-devln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.acd /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.bz2cd 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 --helpper 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-fpmL’ultimo switch ( –enable-fpm) garantisce che questa versione di PHP funzioni con PHP-FPM.
make
make installCopia 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.inicp /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.confApri /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.servicecon 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.targetAbilita il servizio e ricarica systemd:
systemctl enable php-7.1-fpm.service
systemctl daemon-reloadInfine, avvia PHP-FPM.
systemctl start php-7.1-fpm.servicePer 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.so3.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-devQuindi 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-php7Prepara le sorgenti eseguendo il comando phpize da PHP 7.1.
/opt/php-7.1/bin/phpizeConfigura e compila l’estensione PHP memcache.
./configure --with-php-config=/opt/php-7.1/bin/php-config
make
make installPer 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.so3.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 xdebugQuindi modifica il file php.ini con un editor:
nano /opt/php-7.1/lib/php.inie aggiungi la seguente riga alla fine del file:
zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.soInfine riavvia il demone php-fpm:
systemctl start php-7.1-fpm.serviceTesta la versione di PHP:
cd /opt/php-7.1/bin
./php --versionL’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:

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
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 
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.bz2cd 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 --helpper 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-fpmL’ultimo switch ( –enable-fpm) garantisce che questa versione di PHP funzioni con PHP-FPM.
make
make installCopia 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.inicp /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.confApri /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.servicecon 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.targetAbilita il servizio e ricarica systemd:
systemctl enable php-7.2-fpm.service
systemctl daemon-reloadInfine, avvia PHP-FPM.
systemctl start php-7.2-fpm.servicePer 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.so4.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-devQuindi 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-php7Prepara le sorgenti eseguendo il comando phpize da PHP 7.2.
/opt/php-7.2/bin/phpizeConfigura e compila l’estensione PHP memcache.
./configure --with-php-config=/opt/php-7.2/bin/php-config
make
make installPer 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.so4.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 xdebugQuindi modifica il file php.ini con un editor:
nano /opt/php-7.2/lib/php.inie aggiungi la seguente riga alla fine del file:
zend_extension=/opt/php-7.2/lib/php/extensions/no-debug-non-zts-20170718/xdebug.soInfine riavvia il demone php-fpm:
systemctl start php-7.2-fpm.serviceTesta la versione di PHP:
cd /opt/php-7.2/bin
./php --versionL’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:

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
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 
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.bz2La 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/sslEntra 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 --helpper 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-fpmL’ultimo switch ( –enable-fpm) garantisce che questa versione di PHP funzioni con PHP-FPM.
make
make installCopia 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.inicp /opt/php-5.6/etc/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.confmkdir -p /opt/php-5.6/etc/php-fpm.dApri /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/*.conf5.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.servicecon 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.targetAbilita il servizio e ricarica systemd:
systemctl enable php-5.6-fpm.service
systemctl daemon-reloadInfine, avvia PHP-FPM.
systemctl start php-5.6-fpm.servicePer 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.so5.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-devQuindi 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 memcachePer 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.soInfine riavvia il demone php-fpm:
systemctl start php-5.6-fpm.serviceTesta la versione di PHP:
cd /opt/php-5.6/bin
./php --versionL’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:

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
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 
6 Link
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.