Linux bash script to switch between PHP versions (if you have installed multi versions)
Assume you have php5.6 , php7.3, php7.4, php8.1, php8.3, php8.4 this is a good switcher for you
php-change.sh
#!/bin/bash
#How to use:
#./php-change.sh -f 7.3 -t 8.4
while getopts f:t: flag
do
case "${flag}" in
f) from=${OPTARG};;
t) to=${OPTARG};;
esac
done
# Allowed PHP versions
allowed_versions=("5.6" "7.3" "7.4" "8.1" "8.3" "8.4")
# Check that a version is allowed
if [[ ! " ${allowed_versions[*]} " =~ " ${from} " ]]; then
echo "Error: Invalid 'from' PHP version: $from"
echo "Allowed versions: ${allowed_versions[*]}"
exit 1
fi
if [[ ! " ${allowed_versions[*]} " =~ " ${to} " ]]; then
echo "Error: Invalid 'to' PHP version: $to"
echo "Allowed versions: ${allowed_versions[*]}"
exit 1
fi
# If versions are the same, do nothing
if [[ "$from" == "$to" ]]; then
echo "PHP version is already $from."
exit 0
fi
sudo a2dismod php$from
sudo a2enmod php$to
sudo update-alternatives --set php /usr/bin/php$to
sudo systemctl restart apache2
echo "From: $from";
echo "To: $to";