PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Mettre à jour PHP vers PHP 5.5 sous Debian/CentOS

mercredi 5 mars 2014 à 09:00

I. Présentation

Nous allons ici voir comment mettre à jour PHP vers sa dernière version au moment de l'écriture de ce billet c'est à dire de la version 5.5.8 (sortie le 9 janvier 2014). Dans le contexte du tutoriel, je vais effectuer les manipulations sur une Debian 7 et une CentOS 6 dont les versions stables de PHP sont respectivement 5.4.4 et 5.3.3. La version “stable” est la version que nous allons trouver par défaut lorsque nous installons PHP (ou un autre paquet) sans modifier les dépôts d'une quelconque manière.

Note : Il est important, dans la mesure du possible, de faire une sauvegarde du serveur (un snapshot si c'est une machine virtuelle par exemple).

Pour rappel, il est possible de voir rapidement la version de PHP installée en ligne de commande avec la commande suivante :

php -v

Lorsque nous utilisons les versions standards, nous verrons ce résultat sous CentOS :

MAJPHP01

On voit donc bien ici la version de PHP, et sous Debian :

MAJPHP02

II. Désinstallation de PHP

On va ici passer par une désinstallation de PHP afin d'éviter les conflits entre les versions de paquet. On doit donc sauvegarder par précaution nos fichiers de configuration dans un répertoire que nous allons également créer :

mkdir /root/configphp
cp -Rf /etc/php* /root/configphp

On supprime ensuite la version de PHP présente sur notre machine, utiliser cette ligne de commande sous CentOS :

yum remove php php-cli php-common && yum clean all

On verra alors que la version  5.3.3 de PHP et ses dépendances vont être désinstallées :

MAJPHP03

Pour désinstaller PHP sous Debian :

apt-get remove --purge php5

MAJPHP06

III. Téléchargement des dépôts

Nous allons à présent télécharger et installer les dépôts contenants  la dernière version de PHP. Il faut savoir que si par défaut lors de l'installation de PHP nous n'avons pas la dernière version qui s'installe, c'est parce que les dépôts qui sont par défaut présents dans les distributions ne contiennent que la version dite “stable” qui n'est donc jamais la dernière version (qu'on appelle unstable ou testing car encore en développement et en test).

On utilise la commande yum qui est capable de télécharger et installer des dépôts via son option “install” :

yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/epel-release-6-5.noarch.rpm
yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm

On va, sous Debian, ajouter deux lignes de dépôts qui sont de simples URL dans le fichier contenant les dépôts (“/etc/apt/sources.list“) :

echo "deb http://packages.dotdeb.org wheezy-php55 all" >> /etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org wheezy-php55 all" >> /etc/apt/sources.list

On télécharge et installe ensuite la clé de signature du dépôt ce qui permet d'éviter des erreurs lors des installations et mises à jour :

wget http://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg

Puis on met à jour les dépôts en question :

apt-get update

IV. Installation de PHP 5.5.x

On réinstalle les paquets PHP 5.5.8 , voici la ligne de commande sous CentOS, j'installe ici beaucoup d'extensions et de modules qui ne sont pas forcément utiles, vous pouvez les enlever de la ligne de commande si vous n'en n'avez pas besoin :

yum install -y php55u php55u-soap php55u-process php55u-pear \
php55u-mysql php55u-mcrypt php55u-mbstring php55u-gd php55u-devel php55u-json

On voit donc l'ensemble des paquets qui vont être installés ainsi que leur version (5.5.8 dans notre cas sous CentOS) :

MAJPHP04

et la ligne de commande sous Debian, j'installe ici beaucoup d'extensions et de modules qui ne sont pas forcément utiles, vous pouvez les enlever de la ligne de commande si vous n'en n'avez pas besoin :

apt-get install php5 php5-mysql php5-common php5-mcrypt php5-dev php5-gd

On peut ensuite s’assurer que la version de PHP est bien la bonne avec la commande suivante :

php –v

MAJPHP07

On doit ensuite rétablir la configuration (« /etc/php.ini ») car celle-ci a été supprimée lors de la désinstallation de PHP . Il est préférable de ne pas backuper l’ancienne configuration mais plutôt de réécrire les valeurs modifiées à la main dans la nouvelle configuration.

On pourra, pour finir, redémarrer le service web Apache2 qui est le service le plus utilisé en couplage avec PHP, pour CentOS :

service httpd restart

Pour Debian :

service apache2 restart

Note : Il est important de faire un test sur l’ensemble des types de services web hébergés (CMS WordPress, Applications web, site web développé à la main) pour être sûr qu’il ne manque pas de modules PHP ou d’extensions particulières. Et, à contrario, de ne pas installer d'extensions inutilisées comme les commandes ci-dessus l'indiquent. Vérifiez donc les extensions utilisées sur votre système avant la mise à jour.

Pensez à regarder vos logs lors de l'utilisation des services web après la mise à jour afin de voir si des extensions sont manquantes ou si des problèmes apparaissent.