Dans ce tutoriel, je vais vous montrer comment passer facilement d’une version de php à une autre dans Ubuntu 22.04.
Lorsque l’on travaille sur un logiciel qui sera utilisé sur différents systèmes, il est de la plus haute importance de vérifier la compatibilité ascendante avec les serveurs qui utilisent différentes versions de php. À l’heure où nous écrivons ces lignes, la version php la plus populaire est la 7.4. Cependant, elle sera obsolète à la fin de l’année 2023. Cela signifie que tout nouveau logiciel doit être soigneusement testé avec des versions plus récentes de php, par exemple php8, php8.1 et php8.2. Dans le même temps, pour de nombreuses raisons, certains utilisateurs sont coincés avec des versions plus anciennes de php, par exemple php7.0, php7.1 et même php5.6. En tant que contributeur de thèmes et de plugins WordPress, il est très important pour moi de ne pas laisser les utilisateurs de côté et mon équipe et moi-même essayons toujours de créer des produits avec une solide rétrocompatibilité. Cela peut représenter un effort supplémentaire, mais dans la plupart des cas, cela en vaut la peine, à moins bien sûr que cela ne soit trop compliqué.
Passer d’une version à l’autre de php
Je suppose que vous administrez un serveur LAMP et que le serveur est opérationnel. Avant de changer de version de php, assurez-vous que vous avez les versions requises installées en lançant la commande suivante dans le terminal :
sudo update-alternatives --list php
Installer les versions manquantes de php
Sautez cette étape si la commande ci-dessus indique que vous disposez de la version de php vers laquelle vous envisagez de passer.
Imaginons que vous souhaitiez passer à php7.2. Si vous voyez que la version de php vers laquelle vous voulez passer est manquante, installez-la en exécutant :
sudo apt install php7.2
Remplacez php7.2 par la version de php vers laquelle vous souhaitez évoluer. Vous aurez probablement besoin de modules supplémentaires. Si vous utilisez WordPress, vous aurez certainement besoin des modules php suivants :
sudo apt install php7.2-common php7.2-cli php7.2-json php7.2-xml php7.2-opcache php7.2-mysql php7.2-mbstring php7.2-zip php7.2-fpm
Passer à la version de PHP souhaitée
Utilisez la commande update-alternatives pour définir la version de PHP que vous souhaitez par défaut. Remplacez 7.2 par la version que vous souhaitez (par exemple, 8.0) :
sudo update-alternatives --set php /usr/bin/php7.2
Nous sommes loin d’être prêts, exécutons quelques commandes supplémentaires :
sudo update-alternatives --set phar /usr/bin/phar7.2
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2
sudo update-alternatives --set phpize /usr/bin/phpize7.2
sudo update-alternatives --set php-config /usr/bin/php-config7.2
Enfin, dans le contexte de la pile LAMP, vous devez mettre à jour le serveur web Apache :
sudo service apache2 restart
Vérifiez maintenant la modification en exécutant la commande suivante :
php -v
Cela fonctionne dans la plupart des cas, mais parfois il ne suffit pas de changer la version de php sur la pile LAMP.
Afin d’être absolument sûr que vous avez bien changé la version de php, je vous recommande de créer un fichier phpinfo.php et d’y ajouter le code : <?php phpinfo() ; à l’intérieur. Placez le fichier dans le dossier racine de votre serveur et accédez-y en lançant https://mydomain.com/phpinfo.php dans le navigateur. (N’oubliez pas de supprimer ce fichier immédiatement après le test, car il présente un risque pour la sécurité). S’il affiche php.7.2, alors vous avez réussi à mettre à jour la version de php et vous n’avez plus besoin de lire cet article.
Intégration LAMP
Dans certains cas, les commandes ci-dessus ne suffisent pas pour passer à la version souhaitée de php. Cela se produit parfois en raison de conflits de dépendances, de la configuration du serveur web, des limitations des alternatives de mise à jour et autres. Dans le cas d’une pile LAMP, j’ai trouvé que c’était une bonne pratique d’exécuter ces commandes également :
sudo a2dismod php7.4
sudo a2enmod php7.2
sudo systemctl start php7.2-fpm
sudo systemctl enable php7.2-fpm
sudo a2disconf php7.4-fpm
sudo service apache2 restart
Cette série de commandes permet non seulement d’échanger la version de php, mais aussi d’assurer une intégration correcte avec le serveur web Apache. Veillez à remplacer php7.4 par la version actuelle de php et php7.2 par la version cible de php.
Bonus : Créer un script Shell
Nous avons couvert un large éventail d’aspects de la configuration et des dépendances afin de réussir à changer php pour la version souhaitée. Enfin, je vous recommande de créer un script shell qui s’exécute en une seule fois au lieu d’exécuter ces commandes une par une. Ouvrez l’éditeur de texte Gedit ou nano et placez les commandes ci-dessus dans un fichier portant l’extension .sh. Ensuite, exécutez le fichier en le lançant dans le terminal :
./myphpversion.sh
Nous avons appris à changer de version de php sur un serveur LAMP sous Ubuntu. Le processus n’est pas simple, mais nous espérons que ces commandes vous seront utiles, à vous et à vos collègues, et qu’elles rendront le processus de développement moins pénible et plus amusant.