Hin und wieder ist es nötig die PHP Version auf den aktuellsten Stand zu bringen, damit die Nextcloud weiterhin fröhlich ihre Dienste verrichten kann. Damit wir aktuelle PHP Versionen installieren können, haben wir im Zuge der Tutorial Serie die PHP Paketquellen des Entwicklers eingehängt. Nur kann es hier passieren, dass das dazugehörige Zertifikat der Paketquellen irgendwann erneuert werden muss. Wenn daher beim apt update Befehl Fehlermeldungen mit dem Text „Invalid Key“ wird es höchste Zeit.
Zur Vollständigkeit hier nochmal den Befehl um die PHP Paketquellen hinzuzufügen, falls noch nicht geschehen. (Fällt spätestens auf, wenn keine neueren PHP Versionen gefunden werden 😅)
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
Um diese Paketquelle nun als „Seriös“ zu kennzeichnen, brauchen wir nun auch noch den Schlüssel des Servers, den wir bei uns als vertrauenswürdig hinterlegen. Dazu laden wir ein passendes Paket herunter und installieren dieses im Anschluss.
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb dpkg -i /tmp/debsuryorg-archive-keyring.deb
Danach kann es auch schon mit der Installation der neueren PHP Version losgehen. Hier in diesem Beispiel werden wir von Version 8.2 auf die 8.5 Updaten. (Vorsicht, immer erst einmal prüfen ob die Nextcloud Version überhaupt mit der gewünschten PHP Version kompatibel ist: https://github.com/nextcloud/server/wiki/Releases-and-PHP-versions)
Hierzu lassen wir uns mit nachfolgendem Befehl alle Pakete/Module auflisten, die wir in der Version 8.2 installiert haben, damit wir diese in der neueren Version installieren können.
apt list --installed | grep php8.2
Danach einfach die gleichen Pakete wieder mit apt install installieren. Damit man die Namen gleich einfacher kopieren kann, hab ich folgenden Befehl:
apt list --installed | grep php8.2 | sed 's/\/.*$//' | sed 's/8.2/8.5/g'
Danach kopieren wir noch die zwei Konfigurationsdateien aus der alten PHP Version in die Neue.
cp /etc/php/8.2/apache2/php.ini /etc/php/8.5/apache2/ cp /etc/php/8.2/cli/php.ini /etc/php/8.5/cli/
Nun gehts nur noch darum die neue PHP Version zu aktivieren und die Alte zu deaktivieren.
a2dismod php8.2 a2enmod php8.5 systemctl restart apache2
Zum Schluss setzen wir noch mit dem Nachfolgenden Befehl, welche PHP Version auch auf der CLI verwendet werden soll, damit auch Nextcloud cron wieder richtig läuft.
#Mit dem Befehl prüfen welche Version genutzt wird php -version #Mit diesem Befehl die PHP Version auswählen update-alternatives --config php
Damit sollte die Umstellung abgeschlossen sein.
