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 sudoest 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-debianIl 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.
