Angristan : Installer PHP 7 sous Debian Jessie via le dépôt Dotdeb
samedi 19 décembre 2015 à 20:15Très attendue, la dernière version majeure de PHP vient de sortir, et contrairement aux anciennes versions, celle-ci ne se concentre pas sur les fonctionnalités mais plutôt sur les performances.
Voici ce que va donner un bon coup de turbo à la plupart des sites web :
- Une vitesse d'exécution jusqu'à 2x supérieure
- Compatibilité 64 bits
- Utilisation de la mémoire vive réduit de 2/3
Installation
Ajout du dépot Dotdeb
echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/dotdeb.listwget -O -
https://www.dotdeb.org/dotdeb.gpg| apt-key add -
apt update
Suppression de PHP 5
systemctl stop php5-fpm apt-get autoremove --purge php5*
Installation de PHP 7 ainsi que quelques dépendances
apt install php7.0 php7.0-fpm php7.0-mysql php7.0-curl php7.0-json php7.0-gd php7.0-mycryptOn peut vérifier la version installée avec php -v.
Configuration
Le socket d'écoute de PHP-FPM change et passe de/var/run/php5-fpm.sockà
/run/php/php7.0-fpm.sockVous devrez donc faire les modifications adéquates dans la configuration si vous utilisez PHP-FPM avec Nginx par exemple :
fastcgi_pass unix:/run/php/php7.0-fpm.sock;On notera également que les fichiers de configuration se trouvent dans /etc/php/
OPcache
OPcache est une extension qui permet à PHP de garder le code compilé en mémoire pendant un certain temps afin de gagner en efficacité si ce code est exécuté plusieurs fois. Il est présent par défaut dans PHP depuis la version 5.5. Bien que OPcache soit activé par défaut, on peut quand même ajouter quelques options dans la configuration pour le rendre plus efficace. La configuration du module se trouve dans /etc/php/mods-available/opcache.ini Par défaut il y a seulement :zend_extension=opcache.soVoici quelques lignes que j'ai ajouté en piochant dans la documentation :
opcache.fast_shutdown=1 opcache.memory_consumption=256 opcache.revalidate_freq=60 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=4000J'ai donc alloué 512Mo de RAM maximum à OPcache et 16Mo pour les chaînes. La valeur revalidate_freq est très importante puisque c'est le temps en seconde pour lequel OPcache ne vérifie pas les mises à jour du code. Faites donc attention si vous êtes dans un environnement de production avec beaucoup de changements de fichiers. Je vous laisse consulter la description des différentes options dans la documentation.
phpMyAdmin
Si vous utilisiez phpMyAdmin depuis le paquet Debian, vous remarquerez que la suppression de PHP 5 entraine la suppression de PMA que c'en est une des dépendances. Vous avez donc plusieurs choix :- Garder PHP 5 et ne pas partir à l'aventure
- Utiliser MySQL uniquement en CLI
- Installer PMA depuis l'archive présente sur le site
- Utiliser un phpMyAdmin plus léger : Adminer
Performances face à HHVM
HHVM est un logiciel développé par Facebook renommé pour sa rapidité à exécuter le PHP, bien plus rapide que PHP 5.x. PHP 7 étant axé performances, les 2 sont au coude à coude depuis la sortie des premières RC de PHP 7. Kinsta.com a fait un comparatif sur différents CMS du nombre de requêtes par seconde maximum en utilisant alternativement PHP 7 et HHVM. [caption id="attachment_1872" align="aligncenter" width="648"] PHP 7 est 3x fois plus rapide que PHP 5.6 ici.[/caption] [caption id="attachment_1875" align="aligncenter" width="648"] On remarque l'importance de l'utilisation de OPcache[/caption] [caption id="attachment_1873" align="aligncenter" width="648"] HHVM se démarque largement, et PHP ne présente que peu d'évolution[/caption] [caption id="attachment_1874" align="aligncenter" width="648"] PHP 7 avec OPcache en tête[/caption] Conclusion : Les performances de chaque moteur d'exécution ne sont pas universelles mais relatives au code. Sur du code optimisé pour PHP 7 (Lavarel), celui-ci se place en tête. Sur du Drupal, PHP 5.6 et 7 sont aussi rapides. De manière générale, on voit que PHP 7 a grandement rattrapé son retard sur HHVM, et que cela est principalement dû à l'utilisation d'OPcache.Verdict
Après quelques jours de questionnement et de tests, notamment sur la compatibilité avec mes différents services et la problématique de phpMyAdmin, j'ai décidé de remplacer ma cohabitation PHP 5.6 / HHVM par l'utilisation de PHP 7 uniquement. En effet PHP 7 est vraiment plus rapide, et cela se ressent sur WordPress, j'ai donc jugé inutile de garder HHVM, d'autant plus que celui-ci consomme plus de mémoire vive que PHP-FPM. La rivalité entre les deux ne peut qu'être positive pour nos sites web ! :)L'article Installer PHP 7 sous Debian Jessie via le dépôt Dotdeb a été publié sur Angristan
Original post of Angristan.Votez pour ce billet sur Planet Libre.
Articles similaires
- Angristan : Installer HHVM avec fallback PHP-FPM sous Debian 8 et Nginx (17/10/2015)
- Angristan : Compiler et installer Nginx avec le module PageSpeed pour Debian (23/08/2015)
- Angristan : Changer le fuseau horaire et mettre à l’heure un serveur sous Debian (28/04/2015)
- RaspbianFrance : Installer WordPress sur une Raspberry Pi (avec Nginx). (05/08/2015)
- Angristan : Générer un certificat auto-signé robuste : RSA et DH 4096 bits et SHA-2 512 bits (26/09/2015)