Mettre à jour PHP vers PHP 5.5 sous Debian/CentOS
mercredi 5 mars 2014 à 09:00I. 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 :
On voit donc bien ici la version de PHP, et sous Debian :
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 :
Pour désinstaller PHP sous Debian :
apt-get remove --purge php5
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).
- Procédure de téléchargement des dépôts sous Centos :
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
- Procédure de téléchargement des dépôts sous Debian :
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) :
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
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.