![Data](https://intux.de/wp-content/uploads/2023/07/Data_1690546630-e1690546661148-696x464.jpeg)
Vor ein paar Tagen hatte ich im Artikel „Nextcloud bei ALL-INKL.COM installieren“ erklärt, wie man seine eigene Nextcloud beim Hoster ALL-INKL.COM aufsetzen kann.
Nachdem die Cloud dort installiert ist, sollte man damit beginnen, die Fehlermeldungen in den „Sicherheits- und Einrichtungswarnungen“ abzuarbeiten. Die meisten Fehlermeldungen können nach der Installation recht einfach eliminiert werden. Leider ist es aber nicht möglich, alle zu beseitigen, was jedoch den fehlerfreien Betrieb der eigenen Cloud nicht weiter beeinflussen sollte.
Wie verhält es sich aber, wenn es in Folge von Upgrades zu weiteren Fehlermeldungen kommt? Diese werden i.d.R. mit einem entsprechenden OCC-Befehl behoben. Hat man bei ALL-INKL ein entsprechendes Hosting-Paket gebucht, dann muss man hier etwas anders vorgehen als z.B. auf dem eigenen Server.
Variante 1
Ab dem Paket Premium hat der Nutzer die Möglichkeit sich via SSH einzuloggen. Da man jedoch über keine root-Rechte verfügt, muss hier der entsprechende OCC-Befehl an die Gegebenheiten angepasst werden. Dies setzt allerdings voraus, dass man mindestens PHP 8 verwendet (bei niedrigereren Versionen ist der Befehl entsprechend anzupassen).
Im folgenden Beispiel zeige ich, wie fehlende Indizes der Datenbank hinzugefügt werden. Dazu wählt man sich via SSH ein, wechselt in das Hauptverzeichnis der Nextcloud und führt folgenden Befehl aus:
1 |
php80 -d memory_limit=512M ./occ db:add-missing-indices |
Variante 2
Ist der Zugriff über SSH nicht möglich, können OCC-Befehle mit einem kleinen Trick ausgeführt werden. Hierzu wird eine PHP-Datei mit folgendem Inhalt erstellt. Der Dateiname spielt dabei keine Rolle. Wenn man z.B. den Dateinamen oc.php verwendet, kann das Skript über die entsprechende Domain mit https://cloud.domain.tld/oc.php im Browser angestoßen werden.
1 2 3 |
<?php exec("/usr/bin/php80 -d memory_limit=512M ./occ db:add-missing-indices"); ?> |
Hier noch ein Beispiel, wie man die Nextcloud in den Wartungsmodus versetzt
1 2 3 |
<?php exec("/usr/bin/php80 -d memory_limit=512M ./occ maintenance:mode --on"); ?> |
und dort wieder heraus holt.
1 2 3 |
<?php exec("/usr/bin/php80 -d memory_limit=512M ./occ maintenance:mode --off"); ?> |
Zum Schluss sollte die zusätzlich erstellte PHP-Datei wieder gelöscht werden, da sonst ein manuelles Upgrade auf die nächsthöhere Nextcloud Version nicht ausgeführt werden kann.
Frage, in der Nextcloud Anleitung steht, dass die Skripte unbedingt als php user (bei Apache ist das standardmäßig „www-data“) ausgeführt werden müssen, um die Berechtigungen korrekt zu erhalten.
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#http-user-label
Da bei All-Inkl kein sudo (und damit auch kein „-u“) möglich ist, kann man im Grunde diese occ Befehle per SSH garnicht sicher verwenden, oder sehe ich das falsch? Als Datei angestoßen müssten sie aber im Grunde als korrekter php user laufen.
Zusatz: Der php user ist bei All-Inkl.com immer der jeweilige Accountname. Von daher kann mein Kommentar in die Mülltonne 😀
Bei mir hat es nicht funktioniert, solange die Datei „occ.php“ hieß. Als ich sie zu „scriptdings.php“ umbenannt habe, hat es aber funktioniert. Vielleicht ist occ ein geschützter/vergebener Name?