J'ai récemment abordé divers sujets concernant la configuration de divers serveurs Web et le fonctionnement d'applications PHP telles que WordPress. Les serveurs Web, tels que OpenLiteSpeed, vous permettent de changer la version à l'aide de la console WebAdmin, mais si vous utilisez Apache, voici comment changer la version de PHP sous Linux.
Versions PHP
Comment vérifier la version de PHP sous Linux ?
Tout d'abord, déterminez quelle version de PHP est actuellement installée et configurée. J'utilise Debian 11 pour cette démonstration. Toutes les instructions données dans cet article fonctionneront sans accroc sur n'importe quelle distribution Linux.
La seule chose à garder à l'esprit est que la version vers laquelle vous essayez de passer est correctement installée.
php -v
Installer une version spécifique de PHP
Il existe un guide détaillé sur LinuxAndUbuntu sur la façon d'installer PHP 8.x sur les distributions Linux basées sur Debian et Ubuntu. Si vous installez une version précédente telle que PHP 7.4, il n'est pas nécessaire d'ajouter de référentiel.
sudo apt install php7.4
Modifier la version de PHP
Une fois que plusieurs versions de PHP sont installées, nous pouvons utiliser les scripts a2dismod et a2enmod pour désactiver une version de PHP et activer une autre version de PHP. Ces deux scripts peuvent activer et désactiver n'importe quel module apache.
Désactiver la version actuelle de PHP
En supposant que vous ayez un PHP 8.1 actuellement défini comme version PHP par défaut, voici comment le désactiver -
sudo a2dismod php8.1
Activer la nouvelle version de PHP
Nous pouvons maintenant passer à n'importe quelle version de PHP installée en utilisant a2enmod -
sudo a2enmod php7.4
N'oubliez pas de redémarrer le serveur apache après avoir changé de version de PHP.
sudo service apache2 restart
Erreurs courantes avec a2enmod
Certains utilisateurs peuvent obtenir l'erreur "bash :a2dismod :commande introuvable".
[email protected]:~$ a2dismod php8.1 bash: a2dismod: command not found
La plupart du temps, l'erreur se produit lors de l'exécution de la commande sans sudo ni root.
Voici la sortie que vous obtenez lors de l'exécution réussie de la commande -
[email protected]:~$ sudo a2dismod php8.1 Module php8.1 disabled. To activate the new configuration, you need to run: systemctl restart apache2
Il en va de même avec a2enmod. Exécutez-le avec sudo ou en tant qu'utilisateur root.
Une autre erreur que les utilisateurs peuvent rencontrer est "ERREUR :Le module php7.3 n'existe pas !".
[email protected]:~$ sudo a2enmod php7.3 ERROR: Module php7.3 does not exist!
Cette erreur signifie que la version de PHP que l'utilisateur essaie d'activer n'est pas installée. Dans ce cas, php7.3 n'est pas installé.
Voici à quoi ressemble une exécution réussie de a2enmod –
[email protected]:~$ sudo a2enmod php7.4 Considering dependency mpm_prefork for php7.4: Considering conflict mpm_event for mpm_prefork: Considering conflict mpm_worker for mpm_prefork: Module mpm_prefork already enabled Considering conflict php5 for php7.4: Enabling module php7.4. To activate the new configuration, you need to run: systemctl restart apache2