Bei Nextcloud funktioniert vieles über das Webinterface. Doch immer mal wieder kommt es vor, dass gewisse Aktionen über OCC (ownCloud console) ausgeführt werden sollten. Oft betrifft das Anpassungen an der Datenbank oder auch zum Beheben von Problemen bei App Installationen.
Ich habe eine Nextcloud-Instanz im Rahmen meines Webohstings bei Hostfactory in Betrieb genommen. Leider funktioniert die Konsole in dieser Umgebung nicht wie gewünscht. Ich habe nicht herausgefunden, an was das liegt, ich vermute aber, es hat mit Berechtigungen oder Funktionen zu tun, die beim Webhoster nicht zur Verfügung stehen.
Damit OCC verwendet werden kann, verbinde ich mich über SSH zu meinem Hosting und navigiere in das Wurzelverzeichnis von Nextcloud.
OCC muss ich mit vorangestelltem php Kommando starten. Zum Beispiel also:
php OCC status
Dabei kommt es zum ersten Fehler:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or directory in /httpsdocs/[INSTACENAME]/lib/private/DB/Connection.php:68
Diese Problem umgehe ich, indem ich die Datei config.php aus dem Verzeichnis config modifiziere und folgende Änderung durchführe:
# Original # 'dbhost' => 'localhost', # # Anpassung: 'dbhost' => '127.0.0.1',
Die Nextcloud-Instanz ist nach dieser Änderung über das Webinterface nicht mehr erreichbar.
Wird das OCC Kommando jetzt wieder ausgeführt, kommt es zu einem weiteren Fehler:
Setting locale to en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8 failed
Please install one of these locales on your system and restart your webserver.
Natürlich habe ich keinen Zugriff auf den Webserver und kann den auch nicht neu starten. Die Abklärungen haben ergeben, dass diese Sprachen sehr wohl installiert sind. Ich habe mir darauf erlaubt, diese Prüfung durch Nextcloud auszuschalten. Dazu musste die Datei lib/private/legacy/util.php
wie folgt angepasst werden.
# Original # if (!OC_Util::isSetLocaleWorking(){ # # angepasst if (OC_Util::isSetLocaleWorking()) {
Damit wird der Test, welcher fehlschlägt, ausgeschaltet. Mit diesen Modifikationen kann ich das Kommando laufen lassen.
Nach dem ich alles mit OCC erledigt habe, müssen die beiden Dateien in den Originalzustand zurück versetzt werden, damit die Instanz wieder wie erwartet funktioniert.
Ich hoffe, dass ich dafür mal eine nachhaltigere Lösung finde. Zum Glück muss das nicht all zu oft gemacht werden.
Danke schön!
Dies half mir, das Problem zu lösen.
In Fedora I found another way
vi /usr/lib/systemd/system/httpd.service
1.
[Service]
…
Environment=LC_CTYPE=en_US.UTF-8
2.
systemctl daemon-reload
3.
systemctl restart httpd.service
Thanks for the Idea.
My Nextcloud is not hosted by me, therefore I don’t have access to this files.