PHP Installation · 8 min read · Oct 28, 2025
Comment installer PHP 7.1.16 en tant que PHP-FPM & FastCGI pour ISPConfig 3.1 sur Debian 8 (Jessie)
La version finale de PHP 7.1 est disponible en téléchargement sur Github et les miroirs PHP maintenant. PHP 7.1 est la prochaine génération du langage de programmation PHP, il est jusqu’à 2 fois plus rapide que PHP 5.6 et 14 fois plus rapide que PHP 5.0 selon les notes de version. La nouvelle version de PHP n’est pas 100% compatible avec PHP 5.x car certaines API obsolètes ont été supprimées, il est donc judicieux de commencer à tester vos sites web pour la compatibilité avec cette nouvelle version. Cela peut être fait facilement et sans affecter tous les sites de votre serveur en utilisant la fonctionnalité de version PHP multiple dans ISPConfig 3. La version PHP peut être sélectionnée dans les paramètres du site web d’ISPConfig 3 pour chaque site individuellement. Cette fonctionnalité fonctionne avec PHP-FPM et FastCGI. Ce tutoriel montre comment construire le nouveau PHP 7.1 en tant que version PHP-FPM et FastCGI sur un serveur Debian Jessie. Cette construction de PHP 7.1 inclut de nombreuses extensions compilées et Zend OPcache et Memcached en tant que modules chargeables.
1 Remarque préliminaire
Je vais installer PHP 7.1 qui a été publié en version finale il y a quelques jours. Veuillez noter que PHP-FPM peut être utilisé à la fois sur les serveurs Apache et Nginx tandis que FastCGI est disponible uniquement pour les serveurs Apache.
Avec les anciennes versions de PHP, PHP-FPM et FastCGI étaient mutuellement exclusifs, de sorte qu’un binaire FPM et FastCGI devait être construit séparément. Avec PHP 7.1, un seul binaire qui prend en charge le mode FPM et FCGI peut être construit.
2 Compiler PHP 7.1 avec PHP-FPM et Fastcgi
Téléchargez et extrayez PHP 7.1 depuis 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/Installez les prérequis pour construire PHP 7.1 et l’éditeur nano que j’utiliserai pour éditer les fichiers de configuration :
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(La dernière commande est nécessaire si vous construisez PHP avec –with-imap, car sinon ./configure s’arrêtera avec l’erreur suivante :
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#)
Configurez et construisez PHP 7.1 comme suit (vous pouvez ajuster la commande ./configure selon vos besoins, jetez un œil à
./configure --helppour voir toutes les options disponibles ; si vous utilisez une commande ./configure différente, il est possible que des bibliothèques supplémentaires soient requises, ou que le processus de construction échoue) :
./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-fpmLe dernier commutateur (–enable-fpm) garantit que cette version de PHP fonctionnera avec PHP-FPM.
make
make installCopiez php.ini et php-fpm.conf aux emplacements corrects :
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.confOuvrez /opt/php-7.1/etc/php-fpm.conf et ajustez le paramètre suivant (supprimez le ; devant la ligne pid) :
nano /opt/php-7.1/etc/php-fpm.conf[...]
pid = run/php-fpm.pid
[...] Ensuite, ouvrez /opt/php-7.1/etc/php-fpm.d/www.conf et ajustez la ligne listen, vous devez utiliser un port inutilisé (par exemple 8999 ; le port 9000 pourrait déjà être utilisé par le PHP-FPM par défaut de Debian) :
nano /opt/php-7.1/etc/php-fpm.d/www.conf[...]
listen = 127.0.0.1:8999
[...] Lorsque vous utilisez plusieurs versions PHP supplémentaires, assurez-vous d’utiliser un port libre, par exemple 8998, 8997, etc. pour les prochaines versions.
3 Créer le script d’init et le fichier d’unité systemd
Debian prend en charge Systemd ainsi que les scripts d’init traditionnels. La plupart des systèmes d’aujourd’hui utilisent Systemd, dans ce cas, procédez avec le chapitre 3.2, pour les systèmes avec un système d’init traditionnel, suivez le chapitre 3.1 puis poursuivez avec le chapitre 4. N’installez pas les scripts systemd et init.d sur le même système.
3.1 Créer un script de démarrage init.d
Tout d’abord, je vais créer un script d’init pour le service php-fpm et ensuite je vais créer une unité systemd.
Tout d’abord, créez un script d’init pour 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 "Démarrage de php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " échoué"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " échoué"
exit 1
else
echo " fait"
fi
;;
stop)
echo -n "Arrêt gracieux de php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "avertissement, aucun fichier pid trouvé - php-fpm ne fonctionne pas ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " échoué. Utilisez force-exit"
exit 1
else
echo " fait"
echo " fait"
fi
;;
force-quit)
echo -n "Terminaison de php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "avertissement, aucun fichier pid trouvé - php-fpm ne fonctionne pas ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " échoué"
exit 1
else
echo " fait"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Recharger le service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "avertissement, aucun fichier pid trouvé - php-fpm ne fonctionne pas ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " fait"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esacRendez le script d’init exécutable et créez les liens de démarrage système :
chmod 755 /etc/init.d/php-7.1-fpm
insserv php-7.1-fpmEnfin, démarrez PHP-FPM :
/etc/init.d/php-7.1-fpm startLe résultat devrait être :
/etc/init.d/php-7.1-fpm start
Démarrage de php-fpm fait3.2 Créer un script Systemd pour PHP 7.1
Maintenant, créez le fichier d’unité systemd :
nano /lib/systemd/system/php-7.1-fpm.serviceavec le contenu suivant :
[Unit]
Description=Le gestionnaire de processus PHP 7.1 FastCGI
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.targetActivez le service et rechargez systemd :
systemctl enable php-7.1-fpm.service
systemctl daemon-reloadEnfin, démarrez PHP-FPM :
systemctl start php-7.1-fpm.service4 Activer Zend OPcache
Pour activer le Zend OPcache, ouvrez /opt/php-7.1/lib/php.ini…
nano /opt/php-7.1/lib/php.ini… et ajoutez la ligne suivante à la fin :
[...]
zend_extension=opcache.soLes extensions Memcache et APCu ne peuvent pas encore être installées sur PHP 7.1, donc je vais sauter leur installation pour l’instant. Je mettrai à jour le tutoriel plus tard lorsque les extensions pecl seront compatibles avec PHP 7.1.
Testez la version PHP :
cd /opt/php-7.1/bin
./php --versionLa sortie devrait être similaire à cette capture d’écran.
Veuillez noter : La capture d’écran est de PHP 7.1.16, le tutoriel est mis à jour en continu pour les nouvelles versions de PHP 7.1, mais nous ne prenons pas de nouvelles captures d’écran à chaque fois, donc la version PHP 7.1 que vous verrez sur votre serveur pourrait être plus récente. La version actuelle de ce tutoriel est pour php-7.1.16.
5 Activer Memcache (optionnel)
Dans ce chapitre, je vais compiler et activer l’extension PHP Memcached.
La première étape consiste à installer le paquet libmemcached-dev depuis Debian.
apt-get install libmemcached-devEnsuite, créez un répertoire, téléchargez l’extension PHP memcache depuis Github, décompressez l’archive et entrez dans le répertoire contenant les fichiers décompressés.
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-php7Préparez les sources en exécutant la commande phpize depuis PHP 7.1.
/opt/php-7.1/bin/phpizeConfigurez et construisez l’extension PHP memcache.
./configure --with-php-config=/opt/php-7.1/bin/php-config
make
make installPour activer l’extension Memcache, ouvrez /opt/php-7.1/lib/php.ini…
nano /opt/php-7.1/lib/php.ini… et ajoutez la ligne suivante à la fin :
[...]
extension=memcached.so2.1 Installer l’extension xDebug (optionnel)
Le module xDebug est une extension de débogage pour PHP. L’installation est optionnelle.
Installez xDebug avec ces commandes.
cd /opt/php-7.1/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install xdebugEnsuite, éditez le fichier php.ini avec un éditeur :
nano /opt/php-7.1/lib/php.iniet ajoutez la ligne suivante à la fin du fichier :
zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.soEnfin, redémarrez le démon php-fpm :
service php-7.1-fpm restart7 Activer PHP 7.1 dans ISPConfig
Dans ISPConfig 3, vous pouvez configurer la nouvelle version PHP sous Système > Versions PHP supplémentaires. Dans l’onglet Nom, vous remplissez simplement un nom pour la version PHP (par exemple, PHP 7.1) - cette version PHP sera listée sous ce nom dans les paramètres du site web dans ISPConfig :

Allez dans l’onglet Paramètres FastCGI et remplissez les champs comme suit :
Chemin vers le binaire PHP FastCGI : /opt/php-7.1/bin/php-cgi
Chemin vers le répertoire php.ini : /opt/php-7.1/lib
Ensuite, allez dans l’onglet Paramètres PHP-FPM et remplissez les champs comme suit :
Chemin vers le script d'init PHP-FPM : /etc/init.d/php-7.1-fpm
Chemin vers le répertoire php.ini : /opt/php-7.1/lib
Chemin vers le répertoire de pool PHP-FPM : /opt/php-7.1/etc/php-fpm.d 
7 Liens
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.