Mobile Menu

Comment installer PHP7 (PHP-FPM & FastCGI) pour ISPConfig 3 sur Debian 7 et 8

21 / 08 / 2015
Sécurité & réseau

La première version bêta de PHP 7 est maintenant disponible pour le téléchargement et est jusqu’à 2 fois plus rapide que PHP 5.6 et 14 fois plus rapide que PHP 5.0 selon les journaux de version. Cette nouvelle version est de plus 100% compatible avec PHP 5.x. Cependant, certaines API obsolètes ont été retirées. Cela peut donc être une bonne idée de tester la compatibilité de vos sites avec cette nouvelle version. Vous pouvez le faire facilement et sans affecter les sites actuellement installés sur votre serveur en utilisant la fonction multi-version PHP d’ISPConfig 3. Cette version peut ensuite être sélectionnée dans les paramètres de vos sites web d’ISPConfig 3 individuellement pour chaque site. Elle fonctionne avec les modes PHP-FPM et FastCGI. Ce tutoriel explique comment compiler PHP 7 (Beta) avec le mode PHP-FPM ainsi que la version FastCGI sur un serveur Debian Jessie. Ces builds incluent Zend OPcache.

Note préliminaire

Je vais installer PHP 7 qui est actuellement en version bêta au moment où j’écris ces lignes. Veuillez noter que PHP-FPM peut-être utilisé à la fois sur un serveur web Apache2 et nginx tandis que FastCGI n’est disponible que pour le serveur web Apache2.

Avec les anciennes versions de PHP, PHP-FPM et FastCGI avaient été mutuellement réservés en mode binaire de sorte qu’ils pouvaient être compilés séparément. Avec PHP 7, les deux binaires peuvent être compilés ensemble et donc nous ne devrons faire qu’une seule compilation PHP.

Compiler PHP 7 avec PHP-FPM et FastCGI

Téléchargez et extrayez PHP 7 :

Installez les pré-requis pour compiler PHP 7 et un éditeur en ligne de commande pour éditer les fichiers de configuration :

Cette dernière commande est requise si vous compilez PHP avec –with-imap, sinon l’exécution de ./configure s’arrêtera avec l’erreur suivante :

Configurez et compilez PHP 7.0.0 comme suit (vous pouvez ajuster la commande ./configure en fonction de vos besoins, jeter un coup d’œil à la commande ./configure –help pour voir toutes les options disponibles ; si vous utilisez une commande ./configure différente, il est possible que vous ayez besoin de bibliothèques additionnelles sinon le processus de compilation pourrait être en échec) :

Le dernier argument (–enable-fpm) permet d’assurer le fonctionnement de PHP avec le mode PHP-FPM.

Copiez php.ini et php-fpm.conf aux bons endroits :

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

Puis ouvrez /opt/php-7.0.0/etc/php-fpm.conf et ajustez la ligne d’écoute listen, vous devez utiliser un port non utilisé (par exemple le port 8999; le port 9000 pourrait être utilisé par défaut pour le PHP-FPM de Debian):

La nouvelle version de Debian supporte Systemd ainsi que les scripts d’initialisation traditionnels. On va d’abord créer un script d’initiation pour le service PHP-FPM puis nous créerons une unité pour Systemd. Donc, créez le script d’initialisation pour PHP-FPM :

Créez le script d’initialisation exécutable et ajoutez les liens au démarrage du système :

Et créez maintenant le fichier d’unité pour Systemd (si vous utilisez une version antérieure à Debian Jessie, passez cette étape) :

Finalement, lancez PHP-FPM …

Pour les serveurs utilisant le système d’initialisation traditionnel, exécutez :

Le résultat devrait être :

Sur les serveurs utilisant Systemd, utilisez plutôt cette ligne de commande :

Pour activer l’option Zend OPcache, ouvrez /opt/php-7.0.0/lib/php.ini …

… et ajoutez la ligne suivante à la fin du fichier :

Le memcache et l’extension APCu ne peuvent pas encore être installés sur PHP 7, nous allons donc sauter leur installation pour le moment.

Activer PHP 7 sur ISPConfig

Sur ISPConfig 3, vous pouvez configurer une nouvelle version de PHP dans « Système > Additional PHP Versions« . Sous l’onglet « Name« , il vous suffit de remplir un nom pour la version PHP (exemple : PHP 7.0.0). Cette version PHP sera répertoriée sous ce nom dans les paramètres du site ISPConfig :

php7_1

Allez sur l’onglet « FastCGI Settings » et remplissez les champs comme suit :

Path to the PHP FastCGI binary : /opt/php-7.0.0/bin/php-cgi
Path to the php.ini directory : /opt/php-7.0.0/lib

php7_fcgi

Puis allez sur l’onglet « PHP-FPM Settings » et remplissez les champs comme suit :

Path to the PHP-FPM init script : /etc/init.d/php-7.0.0-fpm
Path to the php.ini directory : /opt/php-7.0.0/lib
Path to the PHP-FPM pool directory : /opt/php-7.0.0/etc/php-fpm.d

php7_fpm

 

Liens

Source en anglais : howtoforge.com