PHP Installation · 7 min read · Oct 28, 2025
Come installare PHP 7.1.16 come PHP-FPM e FastCGI per ISPConfig 3.1 su Debian 8 (Jessie)
La versione finale di PHP 7.1 è disponibile per il download su Github e sui mirror di PHP ora. PHP 7.1 è la prossima generazione del linguaggio di programmazione PHP, è fino a 2 volte più veloce di PHP 5.6 e 14 volte più veloce di PHP 5.0 secondo le note di rilascio. La nuova versione di PHP non è 100% compatibile con PHP 5.x poiché alcune API deprecate sono state rimosse, quindi è una buona idea iniziare a testare i tuoi siti web per la compatibilità con questo nuovo rilascio. Questo può essere fatto facilmente e senza influenzare tutti i siti sul tuo server utilizzando la funzione multi versione PHP in ISPConfig 3. La versione di PHP può essere selezionata nelle impostazioni del sito web di ISPConfig 3 per ciascun sito individualmente. Questa funzione funziona con PHP-FPM e FastCGI. Questo tutorial mostra come costruire il nuovo PHP 7.1 come versione PHP-FPM e FastCGI su un server Debian Jessie. Questa build di PHP 7.1 include molte estensioni compilate e Zend OPcache e Memcached come moduli caricabili.
1 Nota preliminare
Installerò PHP 7.1 che è stato rilasciato come versione finale pochi giorni fa. Si prega di notare che PHP-FPM può essere utilizzato sia su server Apache che Nginx, mentre FastCGI è disponibile solo per server Apache.
Con le versioni PHP più vecchie, PHP-FPM e FastCGI erano stati mutuamente esclusivi in modo che un binario FPM e FastCGI dovesse essere costruito separatamente. Con PHP 7.1, un singolo binario che supporta la modalità FPM e FCGI può essere costruito.
2 Compilare PHP 7.1 con PHP-FPM e Fastcgi
Scarica e estrai PHP 7.1 da Github:
mkdir -p /opt/php-7.1
mkdir /usr/local/src/php7-build
cd /usr/local/src/php7-build
wget http://de2.php.net/get/php-7.1.16.tar.bz2/from/this/mirror -O php-7.1.16.tar.bz2
tar jxf php-7.1.16.tar.bz2cd php-7.1.16/Installa i prerequisiti per costruire PHP 7.1 e l’editor nano che userò per modificare i file di configurazione:
apt-get install build-essential nano autoconfapt-get install libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-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.a(L’ultimo comando è necessario se costruisci 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.0.7#)
Configura e costruisci 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 build 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) assicura 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-build/php-7.1.16/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
[...] Poi 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
[...] Quando utilizzi più versioni PHP aggiuntive, assicurati di usare una porta libera, ad esempio 8998, 8997 e così via per le versioni successive.
3 Crea lo script di init e il file di unità systemd
Debian supporta Systemd così come i tradizionali script di init. La maggior parte dei sistemi oggi utilizza Systemd, in questo caso procedi con il capitolo 3.2, per i sistemi con sistema di init tradizionale, segui il capitolo 3.1 e poi procedi con il capitolo 4. Non installare entrambi, lo script systemd e init.d, sullo stesso sistema.
3.1 Crea uno script di avvio init.d
Per prima cosa creerò uno script di init per il servizio php-fpm e poi creerò un’unità systemd.
Prima, crea uno script di init per PHP-FPM:
nano /etc/init.d/php-7.1-fpm#! /bin/sh
### BEGIN INIT INFO
# Provides: php-7.1-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-7.1-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-7.1/sbin/php-fpm
php_fpm_CONF=/opt/php-7.1/etc/php-fpm.conf
php_fpm_PID=/opt/php-7.1/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-exit"
exit 1
else
echo " done"
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esacRendi lo script di init eseguibile e crea i collegamenti di avvio del sistema:
chmod 755 /etc/init.d/php-7.1-fpm
insserv php-7.1-fpmInfine avvia PHP-FPM:
/etc/init.d/php-7.1-fpm startIl risultato dovrebbe essere:
/etc/init.d/php-7.1-fpm start
Starting php-fpm done3.2 Crea uno script Systemd per PHP 7.1
Ora crea il file di unità systemd:
nano /lib/systemd/system/php-7.1-fpm.servicecon il seguente contenuto:
[Unit]
Description=The PHP 7.1 FastCGI Process Manager
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.service4 Abilita Zend OPcache
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.soL’estensione Memcache e APCu non possono essere installate su PHP 7.1 ancora, quindi salterò la loro installazione per ora. Aggiornerò il tutorial più tardi quando le estensioni pecl saranno compatibili con PHP 7.1.
Testa 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.16, il tutorial viene aggiornato continuamente per nuove versioni di PHP 7.1, ma non facciamo nuovi screenshot ogni volta, quindi la versione di PHP 7.1 che vedrai sul tuo server potrebbe essere più recente. La versione attuale di questo tutorial è per php-7.1.16.
5 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-devPoi crea una directory, scarica l’estensione PHP memcache da Github, estrai l’archivio ed entra nella directory che contiene i file estratti.
mkdir /usr/local/src/php7-build/php-memcache
cd /usr/local/src/php7-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 costruisci 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.so2.1 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
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install xdebugPoi 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:
service php-7.1-fpm restart7 Abilita PHP 7.1 in ISPConfig
In ISPConfig 3, puoi configurare la nuova versione di PHP sotto Sistema > Versioni PHP aggiuntive. Nella scheda Nome, devi solo inserire un nome per la versione di PHP (ad esempio PHP 7.1) - questa versione di PHP verrà 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
Poi vai alla scheda Impostazioni PHP-FPM e compila i campi come segue:
Percorso dello script di init PHP-FPM: /etc/init.d/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 
7 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.