Home » Système d'exploitation » Changer de version de PHP en Bash

Changer de version de PHP en Bash

commande bash pour PHP

Retour d’expérience de développeur PHP sous Linux.
Le besoin de base était de pouvoir switcher de version de PHP en quelques secondes.

Personnellement, j’ai 4 versions de PHP en parallèle sur mon Ubuntu 7.4, 8.0, 8.1 et 8.2), et pour faire un switch, j’avais quelques commandes Bash.
Les problèmes que j’avais étaient les suivants :

  • Je n’avais pas de script complet la-dessus. Je lançais les commandes les unes après les autres.
  • Je désactivai une version spécifique de PHP, pour activer la version que je souhaitai

J’ai voulu aller plus loin sur ces 2 points. J’ai donc fait un script complet qui désactive la version courante de PHP, et active la version de PHP demandé.
J’ai mis en place aussi plusieurs vérifications, pour voir ce qui était mis en argument du script.

Voici le script Bash :

#!/bin/bash

# This script switches the default PHP version on Ubuntu

# Check if script is being run as root
if [ "$(id -u)" != "0" ]; then
  echo "This script must be run as root" 1>&2
  exit 1
fi

# Check if version number is provided
if [ $# -ne 1 ]; then
  echo "Usage: $0 <version>" 1>&2
  exit 1
fi

# Check if selected version is installed
if ! dpkg -s "php$1" >/dev/null 2>&1; then
  echo "PHP version $1 is not installed" 1>&2
  exit 1
fi

# Disable current PHP version
a2dismod php$(php -v | head -n 1 | cut -d " " -f 2 | cut -c 1-3)

# Enable selected PHP version
a2enmod php$1

# Switch CLI version
update-alternatives --set php /usr/bin/php$1

# Restart Apache for changes to take effect
systemctl restart apache2

echo "Switched PHP version to $1"

J’ai personnellement mis ce script dans un fichier, que j’ai nommé php-switch.sh.

Ensuite, pour changer de version de PHP, exécutez le script avec le numéro de version comme argument. Par exemple, pour basculer vers PHP 8.2, vous pouvez utiliser la commande suivante :

sudo ./php-switch.sh 8.2

Et pour basculer vers PHP 7.4, vous pouvez utiliser la commande suivante :

sudo ./php-switch.sh 7.4

Améliorations

Pour le moment, je ne vois pas forcément de piste d’amélioration, mais n’hésitez pas à m’en proposer si vous en avez.

Posté dans Système d'exploitation, Ubuntu

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.