Nextcloud 21 und Synology: Cron wird nicht mehr ausgeführt

Seit dem Release von Nextcloud 21.0.0 gab es vermehrt Meldungen darüber, dass der Cron sowie occ-Befehle nicht mehr ausgeführt werden können. Diese Probleme waren ausnahmsweise nicht auf Synology DiskStations bzw. DSM beschränkt. Seit dem Release 21.0.2 ist der Fehler bei einigen Usern wieder verschwunden, bei anderen hält er sich aber weiter. Mit 21.0.3 hat es einige Änderungen gegeben, die eigentlich für Nextcloud 22 gedacht waren, still und heimlich aber auch für 21 nachgezogen wurden.

Der Fehler

Lässt man den Nextcloud-Cron über den Cron des Servers – im Falle der DisksStation ist das der Aufgabenplaner – wird dieser nicht mehr ausgeführt. Fehlermeldung erhält man (zumindest ab 21.0.3) keine mehr der Aufruf der cron.php funktioniert ja, allerdings tut diese nicht was sie tun soll. Einige User haben bereits herausgefunden, dass der Cron wieder funktioniert, wenn man die Zeile memcache.local aus der Nextcloud-Config entfernt.

Die Ursache

Standardmäßig ist das PHP-Caching (APCu) auf der Kommandozeile deaktiviert. Wenn ihr meine Artikel gelesen habt, erinnert ihr euch vielleicht daran, dass wir im PHP-Profil für Nextcloud das PHP-Caching aktiviert haben. Da das fehlende Caching in einigen Fällen Probleme mit dem Cron von Nextcloud macht, hat man beschlossen den Cron einfach nicht auszuführen wenn APCu deaktiviert ist. Sieht man in die Nextcloud-Doku steht da plötzlich:

„APCu is disabled by default on CLI which could cause issues with nextcloud’s cron jobs. Please make sure you set the apc.enable_cli to 1 on your php.ini config file or append --define apc.enable_cli=1 to the cron job call.“

Die Lösung

Für Synology DiskStations stellt sich jetzt wieder die Frage, wo ist denn der richtige Ort für die Änderungen. Im PHP-Profil findet sich zwar die Variable apc.enable_cli. Die auf 1 zu setzen löst das Problem aber nicht. Das PHP-Profil gilt ja nur für den Webserver und dort funktioniert APCu ja. Wir wollen aber APCu auf der Kommandozeile.

Um das Problem zu beheben legt ihr über z.B. PuTTY die Datei /usr/local/etc/php74/cli/conf.d/user_settings.ini an und fügt dort folgenden Inhalt ein:

extension = apcu.so

[apc]
apc.shm_size = 512M
apc.enable_cli = 1

Speichert und schließt die Datei und der Cron lässt sich wieder korrekt ausführen.

Vielen Dank an alle aus dem deutschen Synology Forum die ebenfalls die letzten Tage nach einer Lösung gesucht haben und vorallem an diejenigen die die Lösung zusammengetragen haben.

4 thoughts on “Nextcloud 21 und Synology: Cron wird nicht mehr ausgeführt

  1. Ich bin ein Neuling in dem Bereich und weiß leider nicht, wie man die Datei anlegen kann und wie man diese dann speichert. Kann mir da jemand die passenden Befehle nennen? 🙂

    1. Hallo Pierre,

      Du musst dich mit PuTTY mit deiner DS verbinden. Dort steht dir VIM als Editor zur Verfügung.
      Mit „vi /pfad/zur/datei/dateiname“ öffnest du die Datei im Editor bzw legst sie auch gleich an wenn sie noch nicht existiert.
      Mit „a“ startest du den Schreibmodus, mit ESC beendest du ihn wieder. Danach tippst du „:x“ und drückst ENTER, damit wird die Datei gespeichert und geschlossen.
      Vim ist leider nicht der komfortabelste Editor. im Internet findest du aber einige Anleitungen.

      Grüße
      Andreas

Schreibe einen Kommentar

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