PHP Installation · 6 min read · Nov 03, 2025

Comment installer PHP 7 en tant que PHP-FPM & FastCGI pour ISPConfig 3 sur Debian 8 (Jessie)

La version finale de PHP 7 est disponible en téléchargement sur Github et les miroirs PHP maintenant. PHP7 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 bon de commencer à tester vos sites web pour la compatibilité avec cette nouvelle version. Cela peut être fait facilement et sans affecter tous les sites sur 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 en tant que version PHP-FPM et FastCGI sur un serveur Debian Jessie. Ces constructions PHP 7 incluent Zend OPcache.

1 Note Préliminaire

Je vais installer PHP 7 qui est actuellement en Beta au moment de l’écriture de cet article. 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, un seul binaire qui prend en charge le mode FPM et FCGI peut être construit.

2 Compiler PHP 7 avec PHP-FPM et Fastcgi

Téléchargez et extrayez PHP 7 depuis Github :

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

Installez les prérequis pour construire PHP 7 et l’éditeur nano que j’utiliserai pour éditer les fichiers de configuration :

apt-get install build-essential nano
apt-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-dev
ln -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.32#

)

Configurez et construisez PHP 7.0.0 comme suit (vous pouvez ajuster la commande ./configure selon vos besoins, jetez un œil à

./configure --help

pour 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.0.32 --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

Le dernier commutateur (–enable-fpm) s’assure que cette version de PHP fonctionnera avec PHP-FPM.

make  
make install

Copiez php.ini et php-fpm.conf aux emplacements corrects :

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

Ouvrez /opt/php-7.0.32/etc/php-fpm.conf et ajustez le paramètre suivant (supprimez le ; devant la ligne pid) :

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

Ensuite, ouvrez /opt/php-7.0.32/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.0.32/etc/php-fpm.d/www.conf
[...]  
listen = 127.0.0.1:8999  
[...]  

3 Créer le script d’initialisation et le fichier d’unité systemd

Debian prend en charge Systemd ainsi que les scripts d’initialisation traditionnels. Tout d’abord, je vais créer un script d’initialisation pour le service php-fpm et ensuite je vais créer une unité systemd.

Tout d’abord, créez un script d’initialisation pour PHP-FPM :

nano /etc/init.d/php-7.0.32-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides:          php-7.0.32-fpm
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-7.0.32-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-7.0.32/sbin/php-fpm
php_fpm_CONF=/opt/php-7.0.32/etc/php-fpm.conf
php_fpm_PID=/opt/php-7.0.32/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
        ;;
esac

Rendez le script d’initialisation exécutable et créez les liens de démarrage système :

chmod 755 /etc/init.d/php-7.0.32-fpm  
insserv php-7.0.32-fpm

Et maintenant, créez le fichier d’unité systemd

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

avec le contenu suivant :

[Unit]  
Description=Le gestionnaire de processus FastCGI PHP 7  
After=network.target  
  
[Service]  
Type=simple  
PIDFile=/opt/php-7.0.32/var/run/php-fpm.pid  
ExecStart=/opt/php-7.0.32/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.0.32/etc/php-fpm.conf  
ExecReload=/bin/kill -USR2 $MAINPID  
  
[Install]  
WantedBy=multi-user.target

Activez le service et rechargez systemd :

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

Enfin, démarrez PHP-FPM.

Pour les systèmes avec un système d’initialisation traditionnel, exécutez :

/etc/init.d/php-7.0.32-fpm start

Le résultat devrait être :

/etc/init.d/php-7.0.32-fpm start  
Starting php-fpm done

Sur les serveurs qui utilisent systemd, utilisez cette commande à la place :

systemctl start php-7.0.32-fpm.service

Pour activer Zend OPcache, ouvrez /opt/php-7.0.32/lib/php.ini…

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

… et ajoutez la ligne suivante à la fin :

[...]  
zend_extension=opcache.so

Les extensions Memcache et APCu ne peuvent pas encore être installées sur PHP 7, 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.

Testez la version PHP :

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

La sortie devrait être similaire à cette capture d’écran.

Veuillez noter : La capture d’écran provient de PHP 7.0.0, le tutoriel est mis à jour en continu pour les nouvelles versions de PHP 7 mais nous ne prenons pas de nouvelles captures d’écran à chaque fois, donc la version PHP 7 que vous verrez sur votre serveur est probablement plus récente. La version actuelle de ce tutoriel est pour php-7.0.32.

4 Activer PHP 7 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.0.0) - cette version PHP sera listée sous ce nom dans les paramètres du site web dans ISPConfig :

Allez à l’onglet Paramètres FastCGI et remplissez les champs comme suit :

Chemin vers le binaire PHP FastCGI : /opt/php-7.0.32/bin/php-cgi  
Chemin vers le répertoire php.ini : /opt/php-7.0.32/lib

Ensuite, allez à l’onglet Paramètres PHP-FPM et remplissez les champs comme suit :

Chemin vers le script d'initialisation PHP-FPM : php-7.0.32-fpm  
Chemin vers le répertoire php.ini : /opt/php-7.0.32/lib  
Chemin vers le répertoire de pool PHP-FPM : /opt/php-7.0.32/etc/php-fpm.d  

5 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.