Présentation
Le référentiel de paquets stable actuel de Debian ne contient pas toujours un logiciel à jour pour être en ligne avec
nos attentes. Il y a une très bonne raison à cela, comme un système stable comme compromis pour l'exécution d'un logiciel de pointe.
Le langage de script côté serveur PHP n'est pas une exception ! Au
moment où nous écrivons, la version PHP actuelle de Debian est 5.6.29
alors que la dernière version du source 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, où PHP 7 est censé être deux fois plus rapide que son prédécesseur :
Grâce au nouveau Zend Engine 3.0, vos applications voient des performances jusqu'à 2 fois plus rapides et une consommation de mémoire 50 % supérieure à celle de PHP 5.6, vous permettant de servir plus d'utilisateurs simultanés sans ajouter de
matériel. Conçu et refactorisé 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'installer la dernière version de PHP 7 sur le système Debian 8. De plus, nous
installerons PHP-FPM (FastCGI Process Manager). Ce guide proposera deux installations possibles.
Tout d'abord, le guide utilisera compile-php-debian
script disponible sur github.com/linuxconfig/compile-php-debian
pour automatiser l'installation de PHP 7 et plus tard, il montrera comment installer PHP 7 manuellement.
Exigences
- Accès privilégié à votre système Linux Debian en tant que root ou via
sudo
la commande est requise
Difficulté
MOYEN
Congrès
- # - 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
sudo
commande - $ - nécessite que les 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 les supprimer avant la nouvelle installation de PHP 7. Pour le faire pour lister tous les php
package associé 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 packages répertoriés par la sortie de 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 et installera également le démon PHP-FPM. Commencez par cloner compile-php-debian
script :
$ git clone https://github.com/linuxconfig/compile-php-debian.git
Ensuite, accédez à compile-php-debian
répertoire :
$ cd compile-php-debian
Maintenant, décidez simplement quelle version de PHP 7 vous souhaitez installer et entrez votre numéro de version sélectionné comme argument pour install_php.sh
scénario. Par exemple pour installer PHP version 7.0.8 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 service
commande :
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Le démon PHP-FPM écoute maintenant sur un localhost
le numéro de port 9000
. Vous pouvez également essayer de vous connecter directement au démon PHP-FPM en utilisant cgi-fcgi
commande trouvée dans libfcgi0ldbl
paquet :
# cgi-fcgi -bind -connect 127.0.0.1:9000 X-Powered-By: PHP/7.1.0 Content-type: text/html; charset=UTF-8
Ceci termine votre installation de PHP 7 sur votre système Linux Debain 8.
Installation manuelle
Installation des prérequis
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 PHP pour cloner le référentiel 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 le git clone
l'opération est terminée, il vous restera un nouveau nom de répertoire php-src
.
Une autre alternative consiste à obtenir une archive tar d'une version spécifique de PHP que vous
souhaitez installer en la téléchargeant directement depuis http://php.net/downloads.php
. L'avantage dans ce cas est une exigence de taille de téléchargement minimale. Cependant, vous ne pourrez pas choisir
des versions sélectivement différentes pour plusieurs déploiements.
Compilation de code source PHP
À ce stade, nous sommes prêts à effectuer une compilation du code source PHP. Accédez à un php-src
précédemment téléchargé répertoire :
$ cd php-src
Ensuite, décidez quelle version de PHP vous souhaitez compiler et installer. Exécutez le git
suivant commande pour lister toutes les versions 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 git checkout
commande pour passer à la branche de version PHP 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. Faites attention au --prefix
et --with-config-file-scan-dir
chaînes de configuration 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 en fonction de vos besoins. En fonction de votre sélection, vous devrez peut-être installer des
prérequis supplémentaires. Copiez et collez le texte ci-dessous dans votre terminal suivi de 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 notre configure et nos Makefiles. Pour ce faire, exécutez :
$ ./buildconf --force Forcing buildconf Removing configure caches rebuilding aclocal.m4 rebuilding configure rebuilding main/php_config.h.in
Procédez ensuite à la configuration de la compilation :
$ ./configure $CONFIGURE_STRINGS
Si aucune erreur n'a été produite par le configure
ci-dessus commande, puis il est temps d'effectuer la compilation en exécutant un make
commande :
$ make .... Build complete. Don't forget to run 'make test'.
Une fois la compilation si le code source PHP est terminé, exécutez éventuellement make test
commande ou exécutez make install
commande pour installer tous les binaires précédemment compilés dans leurs
répertoires correspondants :
# 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/
Terminé. 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 nouveau compilé/usr/local/php-$version/sbin/php-fpm
binaire pour rendre notre installation propre :
# 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 php-src
répertoire, configurez un php.ini
par défaut configuration :
# cp php.ini-production /usr/local/php-7.1.0/lib/php.ini
Activer 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 /usr/local/php-7.1.0/etc/php-fpm.conf
fichier de configuration avec un 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 php.ini
fichier de configuration. Par exemple, pour activer l'exécution du module PHP OpCache de Zend :
# echo "zend_extension=opcache.so" >> /usr/local/php-7.1.0/lib/php.ini
Configurer le script PHP7-FPM init.d
Tout d'abord, insérez un php7-fpm.init
modifié suivant script dans /etc/init.d/
répertoire :
# wget -qO /etc/init.d/php7-fpm https://linuxconfig.org/images/php7-fpm.init
Si vous avez installé une version différente de PHP autre que 7.1.0
utilisez votre éditeur de texte et modifiez les variables de script suivantes pour les adapter à votre VERSION
PHP installé :
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, faites /etc/init.d/php7-fpm
exécutable et lancez udpate-rc.d
commande :
# chmod +x /etc/init.d/php7-fpm # update-rc.d php7-fpm defaults
Démarrer le démon PHP-FPM
Maintenant, vous devriez pouvoir démarrer simplement PHP-FPM Daemon en exécutant service
commande :
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
Le démon PHP-FPM écoute maintenant sur un localhost
le numéro de port 9000
.