Was ist occ bei Nextcloud?

Bei occ handelt es es sich um die Own-Cloud-Console, diese ermöglicht ein arbeiten an der Next-Cloud-Installation im Terminal. Ähnlich wie Drush bei Drupal oder die WP-CLI bei WordPress. Notwendig ist dazu ein Zugang zum Server, bei den ‚besseren‘ Shared-Hosting-Provider erfolgt er per SSH.

Zum Beispiel erscheint bei der Nextcloud-Übersicht (https://DOMAIN/index.php/settings/admin/overview) folgender Hinweis:

In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von „occ db:add-missing-indices“ können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.
Fehlender Index „owner_index“ in der Tabelle „YtsD0_share“.
Fehlender Index „initiator_index“ in der Tabelle „YtsD0_share“.
Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in big int. Aufgrund der Tatsache, dass das Ändern von Spaltentypen bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch geändert. Durch Ausführen von „occ db:convert-filecache-bigint“ können diese ausstehenden Änderungen manuell übernommen werden. Diese Operation muss ausgeführt werden,

Doch wie führt man z.B. „occ db:add-missing-indices“ aus? Bei occ handelt es sich um ein schlichtes php-Programm. Nach dem einloggen auf die Konsole des Servers (puTTY ist hier Standard, Bitvise finde ich aber übersichtlicher und funktionsreicher) navigiert man in das root-Verzeichnis der Nextcloud-Installation (cd und dir helfen weiter). Dort ruft man den entsprechenden Befehl einfach mit ‚php occ‘ auf, im obigen Fall also „php occ db:add-missing-indices“ .

Übrigens ist mit occ vieles zur Administration von Nextcloud möglich: Geben sie einfach ‚php occ‘ ein und es erscheint eine Übersicht aller Befehle.

OCC im Browser

Im App-Verzeichnis von Nextcloud ist die App ‚OCC Web‘ aufgeführt. Mit dieser ist es auch möglich, OCC ohne SSH zu nutzen, sondern direkt im Browser. Leider wird die App nicht mehr weiterentwickelt und wurde vom Programmierer als decpracted gekennzeichnet. Er empfiehlt nur noch einen Einsatz bis zur Nextcloud Version 18.

Grund für die Fortführung von OCC Web ist laut Programmierer die nicht mögliche asynchrone Ausführung von Apps in Nextcloud wegen php. Benötigt ein OCC-Kommando länger als das php-timeout des Servers kann das so zu einer beschädigten Datenbank führen. Außerdem ist der Programmierer vom Nextcloud-Team genervt, da sie zu viele Neuigkeiten einbauen anstatt schon viele lang bekannte Probleme anzugehen.

Nextcloud occ bei all-inkl

Als Tarif empfehle ich mindestens Premium. Dieser kostet nur 2€ mehr als der nächst kleinere Tarif (Privatplus), und bietet (neben viel mehr von allen 🙂 einen SSH-Zugang, welcher für OCC eben notwendig ist.

Falsche php-Version für occ

Der Aufruf von occ per ssh mittels ‚php occ …‘ wird bei All-Inkl mit der Fehlermeldung ‚This version of Nextcloud requires at least PHP 7.1. You are currently running 7.0.33-nmm1. Please update your PHP version‚ quittiert. Die einzelnen php-Versionen liegen im Verzeichnis ‚/usr/bin/‘, welches im Pfad des Servers definiert ist. Mittels ‚php73 occ …‘ rufen sie so beispielsweise occ mit der php-Version 7.3 auf, was auch problemlos funktioniert.

Vereinfachen lässt sich das mit einer Verknüpfung wie hier beschrieben: Durch die Eingabe von ‚ ln -sfv /usr/bin/php74 /usr/bin/php ‚ in der Konsole wird dort in Zukunft php mit der Version 7.4 ausgeführt.

OCC ohne SSH

Eine Besonderheit bei all-inkl ist die Ausführung von occ per php-Skript durch einen Trick: Erstellen sie eine php-Datei im root-Verzeichnis der Nextcloud-Installation.

Hier als Beispiel das occ-Kommando um fehlende Datenbank-Indizies zu erzeugen:

<?php
  exec("/usr/bin/php73 -d memory_limit=512M occ db:add-missing-indices");
?> 

Nennen sie diese Datei z.B. ‚db.php‘ mit ausführbaren Berechtigungen (777) und rufen sie sie mit ‚ihredomain.tld/db.php‘ auf.

Übrigens: Warum ich aber von Nextcloud bei all-inkl nicht allzu viel halte lesen sie hier bei meinen Tipps und Erfahrungen zu Nextcloud

Und warum OCC und nicht NCC?

Nextcloud ist bekanntlich ein Fork von Owncloud, dabei wurder der Name occ für Own-Cloud-Console einfach beibehalten. Ich finde als Trekkie, der Befehl sollte zu ncc für Next-Cloud-Console umbenannt werden, aber auf mich hört ja niemand 🙂

2 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert