In diesem Artikel beleuchten wir Shell oder auch CLI PHP im Zusammenspiel mit Nextcloud auf einem all-inkl Webserver. Am Ende des Beitrages wisst ihr auch, wie ihr die PHP Version auf den Webservern von all-inkl ändern könnt.
Was ist Shell oder CLI PHP und wozu dient es?
Das Shell oder CLI PHP ist ein Hilfsmittel, um PHP-Code direkt von der Befehlszeile aus aufzurufen und auszuführen. Es ist ein leistungsstarkes Werkzeug für Entwickler, um auf Servern oder lokalen Maschinen Skripte auszuführen und Aufgaben automatisiert zu erledigen, wie zum Beispiel die Verarbeitung von Daten, die Verwaltung von Dateien und die Durchführung von Systembefehlen. Viele Softwareinstallationen bieten heutzutage Zugriff mittels CLI PHP.
Nextcloud mittels Shell PHP verwalten
Die Verwaltung des beliebten Conten Management Systems Nextcloud kann auch über die Befehlszeile und damit mittels Shell oder CLI PHP erfolgen. Auf diesem Weg können Administratoren eine Vielzahl von Aufgaben automatisieren, um die Verwaltung und Wartung von Nextcloud-Installationen zu erleichtern. Über Shell PHP kann man beispielweise Nextcloud-Instanzen erstellen und konfigurieren, Benutzer und Gruppen verwalten, Apps installieren und aktualisieren, Systemlogs überwachen und vieles mehr.
In Nextcloud kommt man bei der Nutzung der „occ“-Befehle in Berührung mit CLI PHP. Das Kürzel „occ“ steht für „ownCloud Console Command“ und es handelt sich dabei um eine Befehlszeilenschnittstelle für Nextcloud, ähnlich wie die Shell/CLI PHP für WordPress. Mit Hilfe von „occ“-Befehlen können zahlreiche Aufgaben ausgeführt werden, wie beispielsweise das Aktualisieren der Nextcloud-Installation, die Verwaltung von Benutzern und Gruppen, das Löschen von Dateien, die Überprüfung von Systeminformationen oder das Konfigurieren von Apps. Die Aktualisierung einer Nextcloud-Instanz mittels occ auf Kommandozeilenebene sieht auf einem all-inkl Webserver in etwa so aus:
php occ maintenance:mode --on
php occ upgrade
php occ maintenance:mode --off
Unterschiedliche PHP Versionen zusammenführen
Es gibt verschiedene Versionen von Shell PHP, die auf der Befehlszeile ausgeführt werden können, je nachdem welche PHP-Version auf dem Server oder der lokalen Maschine installiert ist.
Um Kompatibilitätsprobleme bei der Verwendung von Shell PHP zu vermeiden, muss die PHP Version mit der in der jeweiligen Webanwendung wie Nextcloud verwendeten PHP Version übereinstimmen.
Die neueste Version von PHP enthält meist viele nützliche Funktionen und Verbesserungen, doch kann es sein, dass einige Nextcloud-Funktionen diese nicht verwenden können. Auch der entgegengesetzte Fall ist mir schon öfter vorgekommen: eine veraltete CLI PHP Version harmoniert nicht mit einer aktuellen Webanwendung. Das ergibt dann zum Beispiel so eine Fehlermeldung:
This version of Nextcloud requires at least PHP 8.0<br/>You are currently running 7.3.3. Please update your PHP version
Shell/CLI PHP Version auf dem all-inkl Webserver ändern
Während ihr die PHP Version der Webanwendungen wie Nextcloud bei all-inkl im Domain-Bereich des KAS einstellt, ist eine Änderung der Shell PHP Version etwas aufwendiger.
Theoretisch müsste es Tarif-unabhängig auch über WebFTP funktionieren, aber mit einem SSH-fähigen Paket bei all-inkl funktioniert es definitiv. Einen höheren Tarif bei all-inkl zu buchen, ist ohnehin empfehlenswert. Allein die Möglichkeit mit SSH zu arbeiten, spart viel Zeit und Aufwand.
Um das CLI PHP versionstechnisch anzupassen, wählt ihr euch mit dem SSH Zugang auf den all-inkl Webserver ein. Ob ihr dafür Putty oder einfach eine Shell des Vertrauens benutzt, bleibt euch überlassen. Im Wurzelverzeichnis legt ihr mit folgendem Befehl eine symbolische Verlinkung an:
ln -sfv /usr/bin/php80 /usr/bin/php
Ist dieses Beispiel so umgesetzt, erfolgt danach jeder Aufruf des Kommandozeilen PHP in der Version 8.0.
Im Hilfebereich von all-inkl werden folgende, einstellbare PHP Versionen genannt, wovon aber ein Teil sicher veraltet sein wird:
PHP 5.6.x – /usr/bin/php56
PHP 7.0.x – /usr/bin/php70
PHP 7.1.x – /usr/bin/php71
PHP 7.2.x – /usr/bin/php72
PHP 7.3.x – /usr/bin/php73
PHP 7.4.x – /usr/bin/php74
PHP 8.x – /usr/bin/php80
PHP 8.1.x – /usr/bin/php81
Verwendete Quelle: Dateiverwaltung: Änderung der PHP CLI Version