Recherche de site Web

Installation de la dernière version de PHP 7 sur Debian 8 Jessie Linux


Introduction

Le langage de script PHP côté serveur n’est pas une exception ! At
au moment de la rédaction, la version actuelle de PHP de Debian est 5.6.29 alors que la dernière version source de PHP est 7.1.0 (étant donné qu’il n’y a pas du tout de PHP 6).

Les affirmations du développeur PHP actuel placent PHP 7 devant PHP 5.6 en termes de vitesse, alors que PHP 7 est censé être deux fois plus rapide que son prédécesseur :

Grâce au nouveau moteur Zend Engine 3.0, vos applications bénéficient de performances jusqu’à 2 fois plus rapides et d’une consommation de mémoire supérieure de 50 % à celle de PHP 5.6, ce qui vous permet de servir davantage d’utilisateurs simultanés sans ajouter de matériel
. Conçu et remanié pour les charges de travail d’aujourd’hui, PHP 7 est le choix ultime pour les développeurs Web d’aujourd’hui.

Référence : zend.com/en/resources/php-7

Objectif

Comparer une vitesse entre PHP 5.6 et le dernier PHP 7.1.0 n’est pas un objectif de cet article. Cependant, l’objectif est d’obtenir la dernière version de PHP 7 installée sur le système Debian 8. De plus, we
installera PHP-FPM (FastCGI Process Manager). Ce guide vous proposera deux installations possibles.

Tout d’abord, le guide utilisera le script compile-php-debian disponible à github.com/linuxconfig/compile-php-debian pour automatiser l’installation de PHP 7 et plus tard, il montrera comment installer PHP 7 manuellement.

Exigences

  • Un accès privilégié à votre système Linux Debian en tant que root ou via la commande sudo est requis

Difficulté

DOULEUR MOYENNE

Conventions

  • # – nécessite que les commandes Linux données soient exécutées avec les privilèges root, soit directement en tant qu’utilisateur root, soit en utilisant la commande sudo
  • $ – nécessite que des commandes Linux données soient exécutées en tant qu’utilisateur régulier non privilégié

Instructions

Supprimer les packages PHP5

Si PHP5 est déjà installé sur votre système, vous devez le supprimer avant l’installation de PHP 7. Pour ce faire, listez tous les paquets liés à php sur votre système :

dpkg -l | grep -E "^ii.*php" | cut -d " " -f3
libapache2-mod-php5
php5
php5-cli
php5-common
php5-json
php5-readline

La commande linux suivante supprimera tous les paquets listés par la sortie de la commande ci-dessus :

REMOVE=$(dpkg -l | grep -E "^ii.*php" | cut -d " " -f3)
dpkg -P $REMOVE

Installation automatique par script

L’installation automatique scriptée suivante effectue toutes les étapes nécessaires pour compiler et installer la version PHP 7 sélectionnée par l’utilisateur, ainsi que l’installation du démon PHP-FPM. Commencez par cloner le script compile-php-debian :

git clone https://github.com/linuxconfig/compile-php-debian.git

Ensuite, naviguez jusqu’au répertoire compile-php-debian :

cd compile-php-debian

Il vous suffit maintenant de décider quelle version de PHP 7 vous souhaitez installer et d’entrer le numéro de version que vous avez sélectionné comme argument pour install_php.sh script. Par exemple, pour installer la version 7.0.8 de PHP, entrez :

./install_php.sh 7.0.8
FOR PHP VERSION 7.1.0 RUN
./install_php.sh 7.1.0 

L’installation peut prendre un certain temps. Une fois terminé, démarrez PHP-FPM Daemon en exécutant la commande de service :

service php7-fpm start
service php7-fpm status
[ ok ] php-7.1.0-fpm is running.

Le démon PHP-FPM est maintenant à l’écoute sur le numéro de port 9000 d’un localhost. Vous pouvez également essayer de vous connecter au démon PHP-FPM directement en utilisant la commande cgi-fcgi trouvée dans le paquet libfcgi0ldbl :

cgi-fcgi -bind -connect 127.0.0.1:9000
X-Powered-By: PHP/7.1.0
Content-type: text/html; charset=UTF-8

Cela termine l’installation de PHP 7 sur votre système Linux Debain 8.

Installation manuelle

Prérequis Installation

Commençons par l’installation de tous les prérequis pour s’adapter aux options de compilation PHP les plus courantes :

apt-get install autoconf bison build-essential git-core libbz2-dev libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg-dev libmcrypt-dev libpng-dev libpspell-dev libreadline-dev libssl-dev 
libxml2-dev pkg-config

Téléchargement du code source PHP

Probablement le moyen le plus simple d’obtenir le code source de PHP est de cloner le dépôt de PHP sur GitHub. Exécutez la commande linux suivante pour cloner le répertoire source PHP :

git clone https://github.com/php/php-src.git

Une fois l’opération de clonage git terminée, vous vous retrouverez avec un nouveau nom de répertoire php-src.

Une autre alternative est d’obtenir une archive tar d’une version spécifique de PHP que vous souhaitez installer < /> souhaitez installer en la téléchargeant directement depuis http://php.net/downloads.php. L’avantage dans ce cas est une taille de téléchargement minimale. Toutefois, vous ne pourrez pas choisir
différentes versions de manière sélective pour plusieurs déploiements.

Compilation du code source PHP

À ce stade, nous sommes prêts à effectuer une compilation du code source PHP. Naviguez vers un répertoire php-src précédemment téléchargé :

cd php-src

Ensuite, décidez de la version de PHP que vous souhaitez compiler et installer. Exécutez la commande git suivante pour lister toutes les versions de PHP 7 disponibles :

git branch -a | grep PHP-7
  remotes/origin/PHP-7.0
  remotes/origin/PHP-7.0.0
  remotes/origin/PHP-7.0.1
  remotes/origin/PHP-7.0.10
  remotes/origin/PHP-7.0.11
  remotes/origin/PHP-7.0.12
  remotes/origin/PHP-7.0.13
  remotes/origin/PHP-7.0.14
  remotes/origin/PHP-7.0.2
  remotes/origin/PHP-7.0.3
  remotes/origin/PHP-7.0.4
  remotes/origin/PHP-7.0.5
  remotes/origin/PHP-7.0.6
  remotes/origin/PHP-7.0.7
  remotes/origin/PHP-7.0.8
  remotes/origin/PHP-7.0.9
  remotes/origin/PHP-7.1
  remotes/origin/PHP-7.1.0
  remotes/origin/PHP-7.1.0RC1
  remotes/origin/PHP-7.1.0RC2
  remotes/origin/PHP-7.1.0RC3
  remotes/origin/PHP-7.1.0beta1
  remotes/origin/PHP-7.1.0beta2
  remotes/origin/PHP-7.1.0beta3

Utilisez la commande git checkout pour basculer vers la branche de la version PHP souhaitée que vous souhaitez utiliser pour la compilation. Exemple:

git checkout PHP-7.1.0
Branch PHP-7.1.0 set up to track remote branch PHP-7.1.0 from origin.
Switched to a new branch 'PHP-7.1.0'

Ensuite, créez un répertoire à utiliser comme cible d’installation. Dans notre cas, ce sera /usr/local/php-7.1.0 :

mkdir /usr/local/php-7.1.0

et spécifiez toutes les chaînes de compilation. Prenez note des chaînes de configuration --prefix et --with-config-file-scan-dir qui définissent les paramètres d’installation et de configuration
. Voici une liste des options de compilation PHP les plus courantes.

N’hésitez pas à mettre à jour la liste pour l’adapter à vos besoins. En fonction de votre sélection, il peut vous être demandé d’installer des prérequis supplémentaires
. Copiez et collez le texte ci-dessous dans votre terminal, puis appuyez sur ENTER :

CONFIGURE_STRINGS="--enable-bcmath \
                   --enable-calendar \
                   --enable-dba \
                   --enable-exif \
                   --enable-filter \
                   --enable-fpm \
                   --enable-ftp \
                   --enable-gd-native-ttf \
                   --enable-intl \
                   --enable-mbstring \
                   --enable-mysqlnd \
                   --enable-pcntl \
                   --enable-shmop \
                   --enable-simplexml \
                   --enable-soap \
                   --enable-sockets \
                   --enable-sysvmsg \
                   --enable-sysvsem \
                   --enable-sysvshm \
                   --enable-wddx \
                   --enable-xmlreader \
                   --enable-xmlwriter \
                   --enable-zip \
                   --prefix=/usr/local/php-7.1.0 \
                   --with-bz2 \
                   --with-config-file-scan-dir=/usr/local/php-7.1.0/etc/conf.d \
                   --with-curl \
                   --with-fpm-group=www-data \
                   --with-fpm-user=www-data \
                   --with-freetype-dir \
                   --with-gd \
                   --with-gettext \
                   --with-jpeg-dir \
                   --with-mcrypt \
                   --with-mhash \
                   --with-mysqli=mysqlnd \
                   --with-mysql-sock=/var/run/mysqld/mysqld.sock \
                   --with-openssl \
                   --without-pear \
                   --with-pdo-mysql=mysqlnd \
                   --with-pdo-sqlite \
                   --with-png-dir \
                   --with-pspell \
                   --with-readline \
                   --with-sqlite3 \
                   --with-zlib"

Ce qui précède définira CONFIGURE_STRINGS variable shell pour contenir toutes vos options de compilation PHP. Ensuite, nous devons construire nos configure et Makefiles. Pour ce faire, exécutez :

./buildconf --force
Forcing buildconf
Removing configure caches
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in

Ensuite, effectuez la configuration de la compilation :

./configure $CONFIGURE_STRINGS

Si aucune erreur n’a été générée par la commande configure ci-dessus, il est temps d’effectuer la compilation en exécutant une commande make :

make
....
Build complete.
Don't forget to run 'make test'.

Une fois la compilation si le code source PHP est terminé, exécutez éventuellement la commande make test ou exécutez la commande make install pour installer tous les binaires précédemment compilés dans leur
répertoires pertinents :

make install
Installing shared extensions:     /usr/local/php-7.1.0/lib/php/extensions/no-debug-non-zts-20160303/
Installing PHP CLI binary:        /usr/local/php-7.1.0/bin/
Installing PHP CLI man page:      /usr/local/php-7.1.0/php/man/man1/
Installing PHP FPM binary:        /usr/local/php-7.1.0/sbin/
Installing PHP FPM config:        /usr/local/php-7.1.0/etc/
Installing PHP FPM man page:      /usr/local/php-7.1.0/php/man/man8/
Installing PHP FPM status page:   /usr/local/php-7.1.0/php/php/fpm/
Installing phpdbg binary:         /usr/local/php-7.1.0/bin/
Installing phpdbg man page:       /usr/local/php-7.1.0/php/man/man1/
Installing PHP CGI binary:        /usr/local/php-7.1.0/bin/
Installing PHP CGI man page:      /usr/local/php-7.1.0/php/man/man1/
Installing build environment:     /usr/local/php-7.1.0/lib/php/build/
Installing header files:           /usr/local/php-7.1.0/include/php/
Installing helper programs:       /usr/local/php-7.1.0/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php-7.1.0/php/man/man1/
  page: phpize.1
  page: php-config.1
/php-src/build/shtool install -c ext/phar/phar.phar /usr/local/php-7.1.0/bin
ln -s -f phar.phar /usr/local/php-7.1.0/bin/phar
Installing PDO headers:           /usr/local/php-7.1.0/include/php/ext/pdo/

C’est fait. PHP 7.1.0 est maintenant installé. Pour confirmer l’exécution :

/usr/local/php-7.1.0/bin/php -v
PHP 7.1.0 (cli) (built: Jan  2 2017 09:09:59) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies

Installation du gestionnaire de processus FastCGI

Dans cette section, nous allons installer PHP-FPM à utiliser comme façade pour l’installation avec des serveurs web tels que Nginx ou Apache. Tout d’abord, créez un lien symbolique du binaire nouvellement compilé
/usr/local/php-$version/sbin/php-fpm pour rendre notre installation ordonnée :

ln -s /usr/local/php-7.1.0/sbin/php-fpm /usr/local/php-7.1.0/sbin/php-7.1.0-fpm

Toujours dans le répertoire php-src, configurez une configuration php.ini par défaut :

cp php.ini-production /usr/local/php-7.1.0/lib/php.ini

Activez le fichier de configuration du démon PHP-FPM :

mv /usr/local/php-7.1.0/etc/php-fpm.d/www.conf.default /usr/local/php-7.1.0/etc/php-fpm.d/www.conf

Utilisez l’éditeur de texte et créez un nouveau fichier de configuration /usr/local/php-7.1.0/etc/php-fpm.conf avec le contenu suivant :

[global]
pid = /var/run/php7-fpm.pid
error_log = /var/log/php7-fpm.log
include=/usr/local/php-7.1.0/etc/php-fpm.d/*.conf

Activer les modules PHP supplémentaires

Insérez toutes les directives de module que vous souhaitez activer dans votre fichier de configuration php.ini. Par exemple, pour activer le module PHP OpCache de Zend, exécutez :

echo "zend_extension=opcache.so" >> /usr/local/php-7.1.0/lib/php.ini

Configurer le script init.d de PHP7-FPM

Tout d’abord, insérez un script php7-fpm.init modifié suivant dans le répertoire /etc/init.d/ :

wget -qO /etc/init.d/php7-fpm https://linuxconfig.org/images/php7-fpm.init

Si vous avez installé une version de PHP différente de la version 7.1.0, utilisez votre éditeur de texte et modifiez les variables de script suivantes pour les adapter à votre version de PHP installée :

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/php-VERSION/sbin
NAME=php-VERSION-fpm
DAEMON=/usr/local/php-VERSION/sbin/$NAME
CONFFILE=/usr/local/php-VERSION/etc/php-fpm.conf

Enfin, rendez /etc/init.d/php7-fpm exécutable et exécutez la commande udpate-rc.d :

chmod +x /etc/init.d/php7-fpm
update-rc.d php7-fpm defaults

Démarrer PHP-FPM Daemon

Maintenant, vous devriez être en mesure de démarrer simplement PHP-FPM Daemon en exécutant la commande de service :

service php7-fpm start
service php7-fpm status
[ ok ] php-7.1.0-fpm is running.

Le démon PHP-FPM est maintenant à l’écoute sur le numéro de port 9000 d’un localhost.

Articles connexes: