Vous l’avez sans doute remarqué, PHP7 est installé en standard sous Ubuntu 16.04 LTS.
Ce qui peu poser problème si vous avez un vieux projet WordPress qui utilise l’extension php mysql, qui n’est plus disponible sous php7.
La solution consiste à installer une configuration apache 2 pour php 5.6 et php 7, et d’activer l’une ou l’autre selon les besoins.
On commence par installer PHP 5.6
sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0 php5.6-xml
Pour passer de php 5.6 à php 7
sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php
Pour passer de php7 à php 5.6 :
sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php
On peux ensuite automatiser le passage de l’un a l’autre avec un alias dans notre bashrc :
vi ~/.bashrc alias setphp7='sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart; sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php' alias setphp5='sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart; sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php'
Contexte de compatibilité
Cette procédure documente un environnement PHP ou Apache de son époque. Les branches PHP 5.x et 7.x ne reçoivent plus le support standard du projet PHP : ne déployez pas cette configuration telle quelle sur un nouveau serveur.
- Identifiez d’abord les versions réellement installées et les modules chargés.
- Préparez une sauvegarde de configuration et une procédure de retour arrière.
- Validez la syntaxe, puis les parcours critiques, sur une version de PHP encore maintenue.
Référence : versions de PHP actuellement prises en charge.