switch PHP Version Linux

von PHP 7.0 nach PHP 7.1:

Apache

sudo a2dismod php7.0 ; sudo a2enmod php7.1 ; sudo systemctl restart apache2

CLI

sudo update-alternatives --set php /usr/bin/php7.1

Als Skript:

#!/bin/bash

# pure command line PHP short:
# php -v | grep ^PHP | cut -d' ' -f2 | cut -d'.' -f1,2

phpV=$(php -r "echo PHP_VERSION;")
phpVShort=$(echo $phpV | cut -d'.' -f1,2)
phpVTarget=$1

if [ $# -eq 0 ]; then
  echo "No PHP version supplied"
  exit 1
fi

echo "current: PHP ${phpV}"
echo "ondrej: PHP${phpVShort}"
echo "Target: ${phpVTarget}"

if [ "$phpVTarget" == "$phpVShort" ]; then
  echo "PHP $phpVTarget is allready the current working version."
else
  sudo a2dismod php"$phpVShort"
  sudo a2enmod php"$phpVTarget"
  sudo systemctl restart apache2

  sudo update-alternatives --set php /usr/bin/php"$phpVTarget"
  echo "Switched to PHP $phpVTarget."
fi

Das kann man dann aufrufen:

./switchPhpVersion.sh 7.1

Das PHP PPA gibt es von https://deb.sury.org.

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Im Falle von add-apt-repository: Befehl nicht gefunden:

sudo apt install software-properties-common

Die PHP Version in einer Shell checken:

php -v

oder

php -version

Ubuntu 19.10

Es faselt bei PHP 7.4 von Problemen mit mpm event & worker.
Dazu aus jeder PHP Version das fpm Modul installieren und anschließend die lib-apache2-mod Dinger. Dann läuft PHP als FPM.

copy & paste

Nach der Installation des PHP Basis Pakets, braucht es meist noch mehr 🙂

apt install php7.4-imagick php7.4-redis php7.4-bcmath php7.4-cli php7.4-curl php7.4-gd php7.4-intl php7.4-json php7.4-mbstring php7.4-pgsql php7.4-tidy php7.4-xml php7.4-zip php7.4-mysql

ondrej/php auf einem Raspberry Pi

# ondrej Paketen vertrauen
sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
# ondrej Repository/Paketquellen hinzu fügen
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
#
sudo apt update