Cas pratiques
Introduction
Les cas pratiques décrits ci-dessous sont réalisés dans le contexte suivant :
-
Système d’exploitation : distribution Debian GNU/Linux version 7.8 - installation minimale.
-
Apache/2.4.12 MPM Event compilé.
-
PHP 5.5.22 compilé.
-
MySQL Server version 5.5.41 de la distribution Debian GNU/Linux.
Environnement et contexte d’installation
-
Les sources sont téléchargées et décompressées dans le répertoire /opt/src.
-
Les logiciels compilés sont installés dans le répertoire /opt/prod.
1. Prérequis système
Afin de compiler Apache et pour son fonctionnement par la suite, l’installation de packages est nécessaire :
apt-get install build-essential make gcc libpcre3-dev lynx curl unzip
2. Apache
L’une des nouveautés de la version 2.4 est l’utilisation par défaut du MPM Event.
Nous allons donc utiliser Apache avec ce dernier.
Apache est compilé et installé dans le répertoire /opt/prod/apache :
./configure --prefix=/opt/prod/apache --enable-nonportable-
atomics=yes --with-included-apr
3. MySQL
Le serveur MySQL est installé à partir du gestionnaire de packages Debian.
apt-get install mysql-server-5.5
Les bases de données et utilisateurs seront créés par la suite.
Hébergement d’un CMS PHP
1. CMS eZ Publish
eZ Publish est un système de gestion de contenu (CMS ou Content Management System) développé et maintenu par l’entreprise norvégienne eZ Systems.
Disponible en version Entreprise (avec support) ou en version communautaire open source (sous licence GPL), ce CMS couvre la grande majorité des besoins liés à la gestion de contenu :
-
édition de contenu,
-
gestion d’utilisateurs, de groupes et de rôles associés,
-
workflows de publication,
-
sites multilingues,
-
gestion de flux RSS,
-
moteur de recherche.
La version installée est la « Community Project 2014.11 » disponible sur le site communautaire http://share.ez.no/downloads.
2. Prérequis du CMS
Les prérequis du CMS sont essentiellement liés aux composants PHP.
De manière globale, les besoins sont :
-
PHP (5.4/5.5/5.6, minimum 5.4.4)
-
Base de données SQL : MySQL/MariaDB ou PostgreSQL
-
Serveur web : Apache 2.2, Apache 2.4 ou Nginx 1.4+
Concernant les modules PHP :
-
Zend OpCache (installé avec PECL)
-
bz2
-
Curl
-
dom
-
exif
-
fileinfo
-
ftp
-
gd
-
Iconv
-
json
-
mbstring
-
mysqli
-
pdo-mysql (5.x)
-
pecl_http
-
pcntl
-
pcre
-
posix
-
reflection
-
simplexml
-
spl
-
ssl
-
xmlreader
-
xsl
-
zlib
-
php-intl
3. Préparation du système
Modification du path sytème
Le path système est modifié afin de donner un accès direct aux binaires :
echo 'PATH=$PATH:/opt/prod/php/bin' > /etc/profile.d/php.sh
echo 'PATH=$PATH:/opt/prod/php/sbin' > /etc/profile.d/php-fpm.sh
À la prochaine connexion (SSH par exemple), le path sera mis à jour :
root@eni-front1:/opt/src/php-5.5.22# echo $PATH
/
usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/
prod/apache/bin:/opt/prod/php/sbin:/opt/prod/php/bin
Création d’un compte utilisateur système et de l’arborescence du projet
Un compte utilisateur « ezpublish » est créé spécifiquement pour le projet :
-
gid et uid à 10000
-
répertoire de l’utilisateur : /home/app/ezpublish
addgroup --system --gid 10000 ezpublish
adduser --home /home/app/ezpublish --shell /bin/false\
--uid 10000 --gid 10000 --disabled-password --disabled-login
ezpublish
L’arborescence de notre projet est :
/home/app/ezpublish/...
Utilisation de plusieurs versions de PHP sur un même serveur Apache
La version de PHP actuellement installée sur notre serveur Apache étant la 5.5.22 pour le CMS eZ Publish, nous allons installer WordPress avec la dernière version de la branche 5.4 à la date de rédaction de cet ouvrage, à savoir la 5.4.38.
Nous aurons donc hébergé sur le même serveur :
-
eZ Publish avec PHP 5.5.22
-
WordPress avec PHP 5.4.38
1. CMS WordPress
WordPress est un système de gestion de contenu ou CMS (Content Management System en anglais) distribué sous licence GNU GPL version 2 et utilisant une base de données MySQL.
WordPress est surtout utilisé pour la création de blogs, mais ses fonctionnalités lui permettent de répondre à des besoins divers et variés.
La version installée est la 4.1.1 en version française, téléchargeable à l’adresse http://fr.wordpress.org/.
2. Prérequis de WordPress
Les prérequis de WordPress dans sa dernière version sont :
-
PHP 5.4 ou version supérieure,
-
MySQL 5.5 ou version supérieure,
-
Le module mod_rewrite d’Apache.
3. Installation de PHP
Spécificités de l’installation de PHP
PHP est installé dans le répertoire /opt/prod/php54 avec les options de compilation suivantes :
'./configure' \
'--prefix=/opt/prod/php54' \
'--with-bz2' \
'--with-curl' \
'--enable-exif' \
'--enable-gd-native-ttf' \
'--enable-gd-jis-conv' \
'--with-gd' \
'--with-jpeg-dir' \
'--with-png-dir' \
'--with-freetype-dir' \
'--enable-mbstring' \
'--with-mysqli' \
'--enable-mysqlnd' \
'--enable-embedded-mysqli' \
'--with-zlib' \
'--enable-fpm' \
'--enable-zip' \
'--disable-cgi' \
"$@"
Le résultat de la commande make install est :
Installing PHP CLI binary: /opt/prod/php54/bin/
Installing PHP CLI man page: /opt/prod/php54/php/man/man1/
Installing PHP FPM binary: /opt/prod/php54/sbin/
Installing...