Comment installer PHP 7 avec Apache et MariaDB sur CentOS 7/Debian 8
La semaine dernière (plus précisément le 21 août 2015), l’équipe de développement de PHP a annoncé la disponibilité de la dernière version de PHP 7 et a encouragé les utilisateurs et les développeurs du monde entier à la tester.
Cependant, nous devons noter que puisqu’il s’agit d’une version RC (Release Candidate), il est prévu qu’elle puisse avoir des bogues ou des incompatibilités avec les configurations existantes, de sorte que les utilisateurs sont invités à les signaler en utilisant le système de suivi des bogues et à ne pas utiliser PHP 7 en production pendant qu’il reste dans cette phase.
Le bon côté des choses, c’est que cette version inclut plusieurs correctifs (vous pouvez vous référer à cette page dans le dépôt GitHub du projet pour une liste détaillée des nouvelles fonctionnalités et améliorations), la caractéristique la plus distinctive étant une augmentation remarquable des performances par rapport aux versions précédentes.
Cet article vous guidera tout au long du processus d’installation et de compilation de PHP 7 RC1 à partir de l’archive source avec Apache et MariaDB sur CentOS 7 et Debian 8 Jessie. Les mêmes instructions fonctionnent également sur les distributions basées sur CentOS comme RHEL, Fedora, Scientific Linux et basées sur Debian telles que Ubuntu/Mint.
Installation de PHP 7 dans CentOS 7 et Debian 8
Comme indiqué dans l’introduction, puisque cette version est une RC au lieu d’une version stable, nous ne pouvons raisonnablement pas nous attendre à la trouver dans les dépôts. Pour cette raison, nous devrons télécharger le code source et compiler le programme à partir de zéro.
Avant de faire cela, cependant, nous devons nous rappeler que pour mieux tirer parti de PHP 7 et peut-être que la meilleure façon de l’essayer est de l’installer avec Apache et MariaDB – que nous POUVONS trouver dans les dépôts :
Sur CentOS 7
yum update && yum install httpd mariadb mariadb-server
Sur Debian 8
aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
Dans les deux cas, l’archive tar avec le code source de PHP peut être téléchargée et extraite comme suit :
wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz
tar xzf php-7.0.0RC1.tar.gz -C /opt
Une fois cela fait, passons à /opt/php-7.0.0RC1 et exécutons le script buildconf avec le commutateur –force afin de forcer la construction d’une version RC :
ls
cd /opt/php-7.0.0RC1.tar.gz
./buildconf --force
Il est maintenant temps d’exécuter notre célèbre commande configure. Bien que les options ci-dessous garantissent une installation standard de PHP 7, vous pouvez vous référer à la liste complète des options dans le manuel PHP afin de mieux personnaliser l’installation selon vos besoins :
./configure \
--prefix=$HOME/php7/usr \
--with-config-file-path=$HOME/php7/usr/etc \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-xpm-dir=/usr \
--with-freetype-dir=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-pdo-mysql=/usr \
--with-gettext=/usr \
--with-zlib=/usr \
--with-bz2=/usr \
--with-recode=/usr \
--with-mysqli=/usr/bin/mysql_config \
--with-apxs2
Si vous rencontrez l’erreur suivante :
configure: error: no acceptable C compiler found in $PATH
see 'config.log' for more details
Il suffit d’installer gcc et les dépendances avec la commande suivante et d’exécuter à nouveau la commande configure ci-dessus.
yum install gcc [On CentOS 7 box]
aptitude install gcc [On Debian 8 box]
Vous serez sur le point de compiler PHP 7, ce qui peut prendre un certain temps. S’il manque d’autres bibliothèques ou ressources, ce processus échoue, mais vous pouvez toujours les installer et exécuter configure à nouveau.
Par exemple, j’ai dû installer libxml2-devel après avoir obtenu le message d’erreur suivant :
configure: error: xml2-config not found. Please check your libxml2 installation.
Malheureusement, nous ne pouvons pas couvrir tous les cas de figure, car les logiciels installés peuvent varier d’un système à l’autre. Lors de l’installation, vous pouvez vous référer à cette page qui décrit plusieurs erreurs que vous pouvez rencontrer lors de l’installation de PHP à partir des sources, ainsi que leurs solutions respectives.
Sur CentOS 7
Voici une liste complète des packages que j’ai dû installer dans ma boîte CentOS 7 avant de pouvoir terminer le processus de configuration :
gcc
libxml2-devel
pkgconfig
openssl-devel
bzip2-devel
curl-devel
libpng-devel
libpng-devel
libjpeg-devel
libXpm-devel
freetype-devel
gmp-devel
libmcrypt-devel
mariadb-devel
aspell-devel
recode-devel
httpd-devel
Vous pouvez installer tous les packages requis ci-dessus avec une seule commande yum, comme indiqué.
yum install gcc libxml2-devel pkgconfig openssl-devel bzip2-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel
Le message suivant indique que la configuration s’est terminée avec succès :
Puis courez,
make
make install
Une fois l’installation terminée, vous pouvez vérifier la version à l’aide de la ligne de commande :
Sur Debian 8
Dans Debian, j’ai dû installer les paquets suivants pour que le processus de configuration se termine avec succès :
make
libxml2-dev
libcurl4-openssl-dev
libjpeg-dev
libpng-dev
libxpm-dev
libmysqlclient-dev
libicu-dev
libfreetype6-dev
libxslt-dev
libssl-dev
libbz2-dev
libgmp-dev
libmcrypt-dev
libpspell-dev
librecode-dev
apache2-dev
Vous pouvez installer tous les paquets requis ci-dessus avec la commande apt-get sur Debian 8.
apt-get install make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev
Ajoutez ensuite –with-libdir=/lib/x86_64-linux-gnu aux options de configuration, et créez le lien symbolique suivant vers le fichier d’en-tête gmp.h :
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
Ensuite, exécutez make et make install comme dans le cas précédent. En 10-15 minutes, la compilation devrait être terminée et nous pouvons vérifier la version de PHP installée comme précédemment :
make
make install
Configuration de php.ini et test de l’installation de PHP 7
Lorsque vous installez PHP à partir des sources, deux exemples php.ini sont fournis. Dans ce cas, ils se trouvent à l’intérieur de /opt/php-7.0.0RC1 :
ls -l /opt/php-7.0.0RC1 | grep php.ini
Vous devez maintenant copier l’un d’entre eux dans /usr/local/lib, qui est désigné comme l’emplacement par défaut pour ce fichier, conformément aux notes d’installation :
cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
Et n’oubliez pas d’ajouter cette directive de configuration aux fichiers de configuration principaux d’Apache.
/etc/httpd/conf/httpd.conf [On CentOS 7 box]
/etc/apache2/apache2.conf in [On Debian 8 box]
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Dans Debian 8, vous pouvez omettre la ligne LoadModule et vous devez également supprimer et créer les liens symboliques suivants vers les modules Apache indiqués :
cd /etc/apache2
rm mods-enabled/mpm_event.conf
rm mods-enabled/mpm_event.load
ln -s mods-available/mpm_prefork.conf mpm_prefork.conf
ln -s mods-available/mpm_prefork.load mpm_prefork.load
Ensuite, redémarrez le serveur web :
systemctl restart httpd [On CentOS 7 box]
systemctl restart apache2 [On Debian 8 box]
Si le démarrage d’Apache dans CentOS 7 renvoie un message d’erreur indiquant qu’il ne trouve pas le module libphp7.so, copiez simplement vers le chemin indiqué à partir de /opt/php-7.0.0RC1/.libs/libphp7.so.
La façon classique de tester une installation PHP/Apache est d’utiliser un fichier phpinfo(). Créez un fichier nommé test.php avec le contenu suivant dans la racine du document du serveur Web (/var/www/html dans les deux distributions) :
<?php
phpinfo();
?>
Et lancez un navigateur dans un client de votre réseau pour tester :
http://localhost/test.php
OR
http://IP-address/test.php
Résumé
Dans cet article, nous avons expliqué comment installer PHP 7 à partir du code source, le dernier RC de ce langage de script populaire côté serveur qui vise à améliorer les performances à des valeurs sans précédent. Jusqu’à ce qu’il atteigne l’écurie en novembre de cette année 2015, il vous est FORTEMENT conseillé de PAS utiliser cette version dans un environnement de production.
Si vous avez des questions/commentaires/suggestions sur cet article, n’hésitez pas à nous le faire savoir en utilisant le formulaire ci-dessous.









