
Bereits mit dem Update auf Nextcloud 21.0.3.1 erhielt ich im Backend unter Grundeinstellungen die Warnung, dass der PHP-Cronjob, der eigentlich alle fünf Minuten ausgeführt wird, um die Oberfläche zu aktualisieren, nicht funktioniert. Ich habe zunächst wegen fehlender Zeit auf Ajax umgestellt, was aber bei einem viel genutzten System keine Lösung auf Dauer ist. In der Hoffnung, mit NC 22 werde das Problem gelöst wartete ich ab.
Da diese Hoffnung enttäuscht wurde, ging ich dem Problem auf den Grund. Wie sich herausstellte, war dies kein Bug, sondern eine Änderung, die nur versteckt dokumentiert ist. Die Lösung fand sich im Endeffekt in einer Warnung in der Dokumentation zum Caching im Abschnitt APCu. Dort steht:
APCu is disabled by default on CLI which could cause issues with nextcloud’s cron jobs.
Es werden zwei Lösungen vorgeschlagen. Die Zeile apc.enable_cli=1 kann in eine der beiden Dateien /etc/php/7.4/mods-available/apcu.ini oder /etc/php/7.4/cli/php.ini eingetragen werden. Beides hatte bei mir keine Wirkung. Erst das Editieren des Cronjobs selbst behob das Problem. Dazu wird der Cronjob mit dem Befehl sudo crontab -u www-data -e zum Editieren geöffnet und die Option --define apc.enable_cli=1 angehängt. Der Cronjob sieht dann folgendermaßen aus:
*/5 * * * * php -f /var/www/nextcloud/cron.php --define apc.enable_cli=1
Seitdem läuft der PHP-Cronjob wieder alle 5 Minuten. Vielleicht schaut ihr mal bei eurer Nextcloud ins Backend, ob ihr das Problem auch habt.

Vielen Dank. Habe da schon einige Zeit verbracht. Dein Tipp hat mir geholfen
Danke, das ist eine ganz wichtige Info.
Die Info mit dem Kommandozeilen-Parameter ist hier zu entnehmen: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html
Einer der Kommentierenden erwähnte, dass zusätzlich eine ini-Option gesetzt werden muss. Die ini-Datei wird vom aktuellen Docker-Image eigentlich schon entsprechend modifiziert, siehe hier: https://github.com/nextcloud/docker/blob/76b79690dc98fba0d372bea6ecebe9c5235e3776/23/apache/Dockerfile#L102
Bei mir ging es zwar auch erst, nachdem ich händisch eine ini-Datei modifiziert hatte, aber ich vermute, es lag am Ende eher daran, dass ich den Docker-Container neu gestartet habe. Jedenfalls geht es jetzt endlich wieder.
Super. Danke für den Tipp.
Danke für die Infos
Dieser Beitrag ist Gold wert! 🙂
Super, vielen Dank für die Info!
Ich muss noch etwas ergänzen was seltsam ist.
Ich hatte einen Ordner, der sich nicht löschen ließ. Selbst händisch hatte ich Probleme und dachte es liegt an verschiedenen Synchronisierungen die da laufen hatte. Schon unter der vorherigen php Version war das nicht möglich und dort funktionierte der cron. Jetzt war ein Löschen kein Problem. Wieso hat das Auswirkungen auf die Datenbank? Seltsam….
Habe das gleiche Problem unter Nextcloud 22 und php8.0.
Mit deiner Eintragung unter:
nano /etc/php/8.0/mods-available/apcu.ini
dieses eintragen:apc.enable_cli=1
und dann unter:
sudo crontab -u www-data -e
*/5 * * * * php -f /var/www/nextcloud/cron.php –define apc.enable_cli=1
wurde das Problem gelöst. Musste beides tun – nur eines davon hilft nicht.
Und was genau soll apcu in
Kombination mit cli technisch bringen ausser dass ein sinnloser shm Cache der am Ende des scripts wieder gelöscht wird entsteht?
Danke für den Tip 🙂
Das Problem tritt (trat) bei mir seit 22.0.0 auf – Danke für die Lösung – war schon am verzweifeln. Hatte die Einrichtung des Cronjobs in der NC-Dokumetation vorwärts und rückwärts gelesen. Wäre nie auf die Idee gekommen unter Rubrik “APCu” zu suchen…
Grüße Mike
Da kommt man auch mit Logik nicht unbedingt drauf.
Gut zu wissen – Upgrade steht an. Vielen Dank
Da gibt es sogar einen Bug-Report (https://github.com/nextcloud/vm/issues/2039) für das Problem, in dem dann darauf hingewiesen wurde, dass es sich bereits seit ein paar Server-Versionen in der Dokumentation befindet und somit indirekt das Problem auf den “User” abgewälzt – also kein Bug, sondern Feature.
Dass man so eine Umstellung aber gar nicht ankündigt … oder zumindest nicht in einem kleinen Versionssprung von 21.0.2 von 21.0.3 ohne weitere Hinweise implementiert, ist schon ziemlich übel, finde ich.
Mit jeder Version bläst man das Projekt mit halb fertigen Neuerungen weiter auf, ohne sich um die mehreren hundert alten Bugs zu kümmern oder lang versprochene Funktionen zu liefern. Seitdem man bei Nextcloud die “Eierlegende Wollmilchsau” werden will, geht es irgendwie abwärts mit dem Projekt.
Danke für den Tipp! Bei mir trat das Problem mit Nextcloud 21 und Debian 10 (Buster), also PHP7.3, ebenfalls auf. Nicht nur während der Cron-Jobs, sondern auch, wenn z.B. occ via CLI aufgerufen wird, um den Maintenance Modus zu aktivieren oder ein Upgrade durchzuführen. Geholfen hat folgendes:
Offensichtlich gibt es einige Stellen, wo man das eintragen kann, die aber anscheinend nicht überall greifen. Deshalb hab ich es nach zwei erfolglosen Versuchen gleich in den Cronjob eingefügt.
Die offizielle Doku zu apc.enable_cli schreibt:
Insofern ist das selektive Aktivieren via php –define Parameter je nachdem die bessere Wahl.
Bei mir hat der Cronjob nach dem Update auf Nextcloud 21 den kompletten Speicher belegt. In den Standardeinstellungen unter Debian ist memory_limit auf -1 (unbegrenzt) gesetzt bei PHP in der Kommandozeile. Es gibt da auch einen entsprechenden Bugreport eines andere Nutzers unter der Nummer #25742.
Seitdem sieht mein Cronjob so wie oben aus aber ich habe auch noch memory_limit auf 1GB gesetzt um sicher zu gehen das mir der Cronjob nicht wieder den ganzen Speicher belegt.
Hab gerade mal geschaut. Das Problem habe ich nicht. Wäre vermutlich auch bereits bei der Nutzung aufgefallen.
Danke 🙂
aber das ist doch dann was wegen der Distry und nicht Nextcloud, da das sich dann ja nur bei Nextcloud auswirkt.. Ich hab fedora, mal sehen, wenn ich die php-version update ..oder nachschau.. (iss auf jedenfall sichernswert in odt 🙂 )
Könntest Du vielleicht mal dazu schreiben welche Distro Du benutzt Ferdi.. Danke.
liebe Grüße
Blacky
Hat mit der Distribution nicht direkt zu tun, sondern mit dem verwendeten LAMP-Stack. Ob das Problem auch schon mit PHP7.3 auftritt, kann ich nicht sagen. Ich habe verschiedene Nextcloud-Instanzen. Eine betroffene Instanz läuft auf einem aktuellen Debian-Server 10, das Gleiche tritt bei einem Ubuntu-Server 21.04 auf. Eine Instanz hier zu Hause mit Docker muss ich nachher noch überprüfen, die muss ich zunächst aktualisieren.