Für einige Fälle mag es notwendig sein eine bestimmte PHP-Version zu nutzen – sei es, dass eine Anwendung nicht mit der aktuellsten Version kompatibel ist oder wir einfach selbst die Kompatiblität von Themes oder Plugins mit anderen Versionen überprüfen wollen. Hierzu muss man dann die entsprechenden Versionen nachinstallieren.
Da jedoch standardmäßig nur eine Version, derzeit PHP 8.1, in Ubuntu enthalten ist müssen wir eine andere Paketquelle hinzufügen. Der einfachste Weg ist hier per PPA von Ondřej Surý.
sudo add-apt-repository ppa:ondrej/php
Das muss dann noch mit Enter bestätigt werden und abschließend laden wir die Paketquellen neu.
sudo apt-get update
Sollten wir uns doch wieder umentscheiden können wir die PPA hiermit wieder entfernen.
sudo add-apt-repository --remove ppa:ondrej/php
Verfügbare PHP-Versionen feststellen
Damit wir feststellen können welche PHP-Versionen uns von nun an zur Verfügung stehen prüfen wir das mal mit folgendem Befehl.
apt list php*
Alternativ auch mit
apt list -a php*
Wenn wir dann in Putty hochscrollen finden wir derzeit folgende Versionen: 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2
Zusätzliche Versionen installieren
Die Version 8.1 haben wir ja hier bereits installiert. Für jede weitere Version die wir verwenden möchten installieren wir nun die erforderlichen Pakete nach folgendem Schema nach. [v] bedeutet hier die jeweilige Version.
sudo apt-get install php[v] libapache2-mod-php[v] php[v]-curl php[v]-fpm php[v]-gd php[v]-imagick php[v]-intl php[v]-json php[v]-mbstring php[v]-mysql php[v]-xml php[v]-zip
Als Beispiel hier für die Version 7.4
sudo apt-get install php7.4 libapache2-mod-php7.4 php7.4-curl php7.4-fpm php7.4-gd php7.4-imagick php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-xml php7.4-zip
Natürlich ist derzeit noch immer die Version 8.1 geladen. Diese müssen wir deaktivieren und die Version 7.4 aktivieren
sudo a2dismod php8.1 sudo a2enmod php7.4
Alternativ können wir bei a2dismod
auch php*
verwenden. Danach muss der Webserver Apache noch neugestartet werden.
sudo systemctl restart apache2
Wenn wir danach wieder unsere Datei info.php
im Browser aufrufen können wir das überprüfen.
Für WordPress gilt im übrigen derzeit PHP in der Version 7.4 als Mindestanforderung.
eine bestimmte PHP-Version wieder entfernen
Sollten wir eine bestimmte PHP-Version nicht mehr benötigen können wir diese folgendermaßen wieder entfernen – zB hier für die Versionen 5.6, 7.0, 7.1, 7.2, 7.3.
sudo apt-get purge php5.6 php5.6-* php7.0 php7.0-* php7.1 php7.1-* php7.2 php7.2-* php7.3 php7.3-*
Mit update-alternatives --config php
können wir uns das auch dann ansehen.
Vorher
Nachher
php.ini Einstellungen für alle PHP-Versionen
Tja wenn wir mehrere Versionen im Einsatz haben wäre es ziemlich unpraktisch dies für jede einzelne Version zu tun. Zum Glück haben wir in Teil 2 dieser Artikelserie die notwendigen Voraussetzungen geschaffen um dies auf einfachem Weg per .htaccess
Datei zu tun.
Hierzu kopieren wir eine Datei mit dem Name .htaccess
in das Verzeichis vor html
-> /var/www
mit folgendem Beispielinhalt
php_value memory_limit 512M php_value post_max_size 256M php_value upload_max_filesize 256M
Auf diese Weise ist die Bearbeitung der Datei php.ini
wie in Teil 3 beschrieben nicht mehr notwendig. Diese Einstellungen werden von nun an für jede PHP-Version verwendet.
Somit wäre der Testwebserver fertig. Natürlich kann man das noch erweitern indem man zB Fail2ban einrichtet oder eine echte Domain aufschaltet. Dies funktioniert jedoch ohnehin nur bei einem Internetzugang mit fixer IP-Adresse.
Bitte beachten Sie, dass dieser Beitrag bereits vor über einem Jahr geschrieben wurde und unter umständen nicht mehr aktuell ist.