Recherche de site Web

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 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 à tester il.

Cependant, nous devons noter que puisqu'il s'agit d'une version RC (Release Candidate), il est prévu qu'elle puisse contenir des bugs ou des incompatibilités avec les configurations existantes, c'est pourquoi il est demandé aux utilisateurs de signalez-les en utilisant le système de suivi des bogues et ne pas utiliser PHP 7 en production tant qu'il reste dans cette phase.

Le bon côté est que cette version inclut plusieurs correctifs (vous souhaiterez peut-être vous référer à cette page dans le référentiel GitHub du projet pour une liste détaillée des nouvelles fonctionnalités et améliorations), la fonctionnalité la plus distinctive étant un augmentation remarquable des performances par rapport aux versions précédentes.

Cet article vous guidera à travers le processus d'installation et de compilation de PHP 7 RC1 à partir de l'archive tar 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 Debian< basé sur Ubuntu/Mint.

Installer PHP 7 dans CentOS 7 et Debian 8

Comme indiqué en introduction, étant donné que cette version est une RC au lieu d'une version stable, nous ne pouvons pas raisonnablement 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, la meilleure façon de l'essayer est peut-être de l'installer avec Apache. et MariaDB – que l'on PEUT 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 contenant 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 dans /opt/php-7.0.0RC1 et exécutons le script buildconf avec le commutateur –force afin de forcer le 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 PHP 7 standard, 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

Installez simplement gcc et ses dépendances avec la commande suivante et exécutez à 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 échouera mais vous pourrez toujours les installer et réexécuter configure.

Par exemple, j'ai dû installer libxml2-devel après avoir reçu 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 puisque les logiciels installés peuvent varier d'un système à l'autre. Lors de l'installation, vous souhaiterez peut-être 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 :

Alors cours,


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 packages 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 packages 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, j'ai exécuté make et make install comme dans le cas précédent. Dans 10-15 minutes, la compilation devrait être terminée et nous pouvons vérifier la version PHP installée comme avant :


make
make install

Configuration de php.ini et test de l'installation de PHP 7

Lorsque vous installez PHP à partir des sources, deux exemples de php.ini sont fournis. Dans ce cas, ils se trouvent dans /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 emplacement par défaut pour ce fichier selon les 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 principaux fichiers de configuration 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-le simplement dans le chemin indiqué. depuis /opt/php-7.0.0RC1/.libs/libphp7.so.

La manière classique de tester une installation PHP/Apache consiste à 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 côté serveur populaire qui vise à améliorer les performances à des valeurs sans précédent. Jusqu'à ce qu'il atteigne la stabilité en novembre de cette année 2015, il vous est FORTEMENT conseillé de NE PAS utiliser cette version dans un environnement de production.

Si vous avez des questions/commentaires/suggestions concernant cet article, n’hésitez pas à nous en faire part en utilisant le formulaire ci-dessous.