Beheben Sie die Nextcloud OPcache-Warnung, indem Sie den richtigen Grenzwert anpassen.

Um die Nextcloud-Warnung „Der PHP-OPcache ist nicht korrekt konfiguriert“ zu beheben, öffnen Sie die vollständige Warnung unter Administrationseinstellungen → Übersicht und erhöhen Sie anschließend nur den dort angegebenen OPcache-Wert in der vom Webserver verwendeten PHP-Konfiguration. Starten Sie den entsprechenden PHP-Dienst neu und prüfen Sie die Warnung erneut. Die alleinige Bearbeitung der PHP-Konfiguration über die Kommandozeile ändert möglicherweise nichts an den von Nextcloud verwendeten Einstellungen.

Wenn Nextcloud beispielsweise meldet, dass der Puffer für intern gespeicherte Zeichenketten fast voll ist, opcache.interned_strings_bufferist eine Erhöhung von 16 auf 32 MB ein sinnvoller erster Schritt, sofern der Server über ausreichend Arbeitsspeicher verfügt. Eine andere Warnung bezüglich zwischengespeicherter Skripte oder gemeinsam genutztem Speicher erfordert eine andere Einstellung.

Warum zeigt Nextcloud diese OPcache-Warnung an?

OPcache speichert kompilierten PHP-Bytecode im gemeinsamen Speicher und reduziert so den Kompilierungsaufwand bei wiederholten Webanfragen. Außerdem reserviert es Speicherplatz für internierte Zeichenketten, wodurch PHP identische Zeichenketten wiederverwenden kann. Diese Kapazitäten stellen separate Beschränkungen dar; die Erweiterung einer behebt daher nicht zwangsläufig eine Warnung bezüglich einer anderen.

Laut der Dokumentation zur Serveroptimierung von Nextcloud 35 warnt das Administrationspanel, wenn die OPcache-Größenbeschränkung 90 % der zugewiesenen Kapazität überschreitet. Die Meldung kann konkret auf einen fast vollen internen String-Puffer, eine begrenzte Anzahl zwischengespeicherter Skripte oder unzureichenden gemeinsam genutzten Speicher hinweisen. Dieses Detail bestimmt die Lösung.

Nextcloud benötigt ebenfalls OPcache opcache.save_comments=1, da es auf die Beibehaltung von PHP-Codekommentaren angewiesen ist. Eine deaktivierte OPcache-Erweiterung oder deaktivierte Kommentarbeibehaltung ist daher ein Konfigurationsproblem und nicht nur ein Problem der Cache-Größe.

1. Identifizieren Sie den Bereich, der Aufmerksamkeit benötigt.

Melden Sie sich als Administrator an, navigieren Sie zu Administrationseinstellungen → Übersicht und lesen Sie die vollständige OPcache-Warnung. Notieren Sie sich die genaue Anweisung, falls eine angegeben ist. Gehen Sie nicht davon aus, dass jede OPcache-Warnung bedeutet, dass der internierte Zeichenkettenpuffer zu klein ist.

  • Internierter String-Puffer fast voll: prüfen opcache.interned_strings_buffer.
  • Der gemeinsam genutzte Speicher des OP-Caches ist fast voll: Überprüfen Sie dies opcache.memory_consumption.
  • Zwischengespeicherte Skripte oder Schlüssel nähern sich dem Limit: Überprüfen Sie opcache.max_accelerated_files.
  • OPcache deaktiviert oder Kommentare nicht gespeichert: Überprüfen Sie opcache.enabledies opcache.save_comments.

2. Ermitteln Sie die PHP-Konfiguration, die Nextcloud bereitstellt.

Auf Debian- oder Ubuntu-Servern mit PHP-FPM ist die PHP-Konfiguration üblicherweise nach PHP-Version und Server-API organisiert. Beispielsweise liest PHP 8.3 FPM möglicherweise Dateien unter /etc/php/8.3/fpm/conf.d/, während das PHP-Modul von Apache möglicherweise verwendet /etc/php/8.3/apache2/conf.d/.

Um herauszufinden, welche PHP-FPM-Dienste auf einem systemd-Host vorhanden sind, führen Sie folgenden Befehl aus:

systemctl list-units --type=service 'php*-fpm.service'

Überprüfen Sie die entsprechenden OPcache-Dateien und ersetzen Sie diese durch Ihre installierte PHP-Version:

sudo ls -l /etc/php/8.3/fpm/conf.d/*opcache*
sudo grep -R 'opcache\.' /etc/php/8.3/fpm/conf.d/

Falls keine Dateien gefunden werden, überprüfen Sie die Haupt- php.iniund Paketierungskonventionen Ihrer Distribution. Der Befehl php --iniist hilfreich, um die PHP-Konfiguration der Kommandozeile zu ermitteln , jedoch können Kommandozeile und PHP-FPM unterschiedliche Einstellungen laden.

Bei Docker oder Nextcloud All-in-One sollten Sie die PHP-Konfiguration innerhalb des Nextcloud-Containers prüfen und eine unterstützte Methode zur persistenten Konfiguration verwenden. Das Bearbeiten von Host /etc/php-Dateien konfiguriert PHP in einem Container in der Regel nicht; Änderungen an einer generierten Containerdatei können zudem durch Neuerstellung rückgängig gemacht werden.

3. Erhöhen Sie den gemeldeten Grenzwert, ohne andere Einstellungen zu ändern.

Sichern Sie die entsprechende Konfigurationsdatei, bevor Sie Änderungen vornehmen. Bei einer herkömmlichen PHP-FPM-Installation unter Debian/Ubuntu bietet sich das Hinzufügen einer lokalen Überschreibung im FPM- conf.dVerzeichnis der jeweiligen PHP-Version an. Stellen Sie sicher, dass dieses Verzeichnis von Ihrer PHP-FPM-Installation geladen wird, bevor Sie fortfahren.

Für das Beispiel mit dem internisierten String-Puffer erstellen oder bearbeiten Sie eine lokale Überschreibung wie z /etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini. B.:

; Example for a warning about interned strings
opcache.interned_strings_buffer=32

Hierbei 32handelt es sich um 32 MB, nicht um 32 Byte. Passen Sie den endgültigen Wert an den tatsächlichen Speicherbedarf und den verfügbaren Arbeitsspeicher an.

Wenn die Warnung stattdessen einen anderen Grenzwert nennt, verwenden Sie das entsprechende Beispiel, anstatt alle drei blind zu addieren:

; Example only: larger shared bytecode cache
opcache.memory_consumption=256

; Example only: allow more cached script keys
opcache.max_accelerated_files=20000

Die Werte für opcache.memory_consumptionwerden in Megabyte angegeben, während opcache.max_accelerated_filesein Limit für Skriptschlüssel festlegt. Die offizielle PHP OPcache-Konfigurationsreferenz erläutert deren Einheiten, Standardwerte und die Möglichkeit der Änderung.

Wenn die Warnung auf einen deaktivierten OPcache oder fehlende Kommentare anstatt auf die Kapazität hinweist, überprüfen Sie stattdessen diese Einstellungen:

opcache.enable=1
opcache.save_comments=1

Schalten Sie Nextcloud nicht aus opcache.validate_timestampsund verlängern Sie die Wartezeit nicht unnötig, opcache.revalidate_freqnur um diese Warnung zu ignorieren. Nextcloud weist darauf hin, dass eine verzögerte Cache-Neuvalidierung dazu führen kann, dass Konfigurations- und Upgrade-Änderungen nicht umgehend wirksam werden.

4. Wenden Sie die neue Konfiguration an.

Bei einem Beispielserver, der PHP 8.3 über PHP-FPM ausführt, sollte zunächst die Dienstkonfiguration überprüft und anschließend der entsprechende Dienst während eines kurzen Wartungsfensters neu gestartet werden:

sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm

Ersetzen Sie dies 8.3durch die installierte PHP-FPM-Version und überprüfen Sie den Namen der ausführbaren Datei und des Dienstes, bevor Sie einen der Befehle ausführen. Ein Neustart unterbricht die vom entsprechenden Pool verarbeiteten Anfragen. Bei Apache mit mod_phpist der relevante Dienst Apache und nicht PHP-FPM. Wenden Sie bei Containern die in Ihrer Bereitstellungsdokumentation beschriebene Neustart- oder Neuerstellungsprozedur an und behalten Sie dabei die Konfiguration bei.

Falls der Dienst nicht neu gestartet werden kann, stellen Sie Ihre gesicherte Konfiguration wieder her und überprüfen Sie das PHP-FPM- oder Webserver-Fehlerprotokoll.

5. Falls die Warnung weiterhin besteht, überprüfen Sie die effektiven Web-PHP-Einstellungen.

Laden Sie nach dem Neustart der PHP-Prozesse zunächst die Administrationseinstellungen → Übersicht neu. Sollte die Warnung weiterhin bestehen, überprüfen Sie, ob die geänderte Direktive tatsächlich von der Web -PHP-Laufzeitumgebung und nicht nur von der Befehlszeile geladen wird. Prüfen Sie, ob eine später geladene .iniDatei oder eine PHP-FPM-Pool-Überschreibung Ihren Wert überschreibt.

Auf einem von Ihnen kontrollierten Server können Sie Web-PHP-Werte temporär mithilfe eines streng zugriffsbeschränkten Diagnoseendpunkts und der entsprechenden PHP- ini_get()Funktion überprüfen. Lassen Sie niemals eine öffentliche phpinfo()Seite online: Dadurch können Umgebungsvariablen, Pfade, Module und andere sensible Konfigurationsdetails offengelegt werden. Entfernen Sie jeden Diagnoseendpunkt unmittelbar nach der Überprüfung.

Um eine dauerhafte Warnung bezüglich der Speicherauslastung zu erhalten, überprüfen Sie die tatsächliche OPcache-Nutzung unter normalen Verkehrsbedingungen, anstatt die Werte wiederholt zu verdoppeln. Die PHP- opcache_get_status()Dokumentation beschreibt die für einen laufenden PHP-Prozess verfügbaren Statistiken zu Speicher, internierten Zeichenketten und zwischengespeicherten Skripten.

Das offizielle Docker-Image von Nextcloud und die All-in-One-Bereitstellungen verwenden eigene PHP-Standardeinstellungen. Änderungen auf Host-Ebene oder empfohlene Werte anderer Installationen bleiben daher nicht erhalten. Das für Ihre Bereitstellung passende Konfigurationsmodell finden Sie im offiziellen Nextcloud-Docker-Repository oder im offiziellen All-in-One-Repository .

Überprüfen Sie, ob die Reparatur funktioniert hat.

Gehen Sie zurück zu den Administrationseinstellungen → Übersicht und prüfen Sie, ob die OPcache-Warnung nicht mehr angezeigt wird. Öffnen und laden Sie einige Nextcloud-Seiten neu, um sicherzustellen, dass die Anwendung weiterhin normal reagiert. Sollte die Warnung nach normaler Nutzung erneut auftreten, überprüfen Sie erneut das gemessene Limit und die effektive Web-PHP-Konfiguration. Ziel ist es, ausreichend Speicherplatz freizuhalten, ohne OPcache unnötig viel Speicher zuzuweisen.

Einen Kommentar hinterlassen

CPU-Spitzen in der Nextcloud-Vorschau durch eine geplante Warteschlange zähmen

Verlagern Sie die Bearbeitung von Miniaturansichten auf einen kontrollierten Hintergrundzeitplan, reduzieren Sie ungenutzte Vorschaubildgrößen und überprüfen Sie die Warteschlange, ohne Ihren Nextcloud-Server zu überlasten.

Nextcloud Desktop Sync: Schritte nach dem Vorgang „Dateien werden verarbeitet“

Ermitteln Sie die Datei, die Ausschlussregel, das Verbindungsproblem oder den Clientdatenbankstatus, der die Nextcloud-Synchronisierung blockiert, und überprüfen Sie anschließend, ob Uploads und Downloads sicher durchgeführt werden können.

Beheben Sie die Nextcloud OPcache-Warnung, indem Sie den richtigen Grenzwert anpassen.

Ermitteln Sie das PHP OPcache-Limit, das die Nextcloud-Warnung auslöst, aktualisieren Sie die entsprechende Web-PHP-Konfiguration, starten Sie Nextcloud sicher neu und überprüfen Sie das Ergebnis.

Nextcloud mit CODE Docker verbinden: Einrichtung und Abwägungen

Nextcloud mit CODE Docker verbinden: Einrichtung und Abwägungen

Vergleichen Sie integrierten und Docker-basierten CODE und verbinden Sie dann Collabora Online über einen sicheren HTTPS-Reverse-Proxy mit Nextcloud.

Erstellen Sie einen ausfallsicheren Nextcloud-Cluster mit Galera

Planen Sie eine zuverlässige Nextcloud HA-Bereitstellung mit gemeinsam genutztem Speicher, Redis-Sperren, Quorum-fähigem MariaDB-Routing und praktischen Failover-Prüfungen.

Nextcloud Talk-Anrufe auch bei Ausfall von Direct Media möglich

Nextcloud Talk-Anrufe auch bei Ausfall von Direct Media möglich

Konfigurieren und überprüfen Sie ein erreichbares TURN-Relay für Nextcloud Talk, wenn Firewalls oder restriktive NAT-Regeln direkte Anrufmedien blockieren.

Nextcloud-Integritätswarnungen durch Wiederherstellung der richtigen Dateien beseitigen

Mithilfe des Berichts über ungültige Dateien können Sie geänderten, fehlenden oder zusätzlichen Nextcloud-Code identifizieren, vertrauenswürdige Dateien sicher wiederherstellen und das Ergebnis überprüfen.

Verbinden Sie Gmail oder Microsoft 365 mit Nextcloud Mail mithilfe von OAuth2

Richten Sie OAuth2 für Nextcloud Mail mit Gmail oder Microsoft 365 ein, überprüfen Sie den Empfang und Versand und beheben Sie häufige Zustimmungs- und SMTP-Fehler.

Sicheres Beheben des Nextcloud-Wartungsmodus mit OCC

Sicheres Beheben des Nextcloud-Wartungsmodus mit OCC

Verwenden Sie OCC, um den Nextcloud-Zugriff wiederherzustellen, den Status der Datenbankmigration zu überprüfen und den richtigen Befehl für Archiv-, Docker- oder Snap-Installationen auszuwählen.

Nextcloud LDAP- und Active Directory-Anmeldung einrichten

Verbinden Sie Nextcloud mit LDAP oder Active Directory, beschränken Sie den Zugriff mit Benutzer- und Gruppenfiltern und überprüfen Sie die sichere Authentifizierung vor der Einführung.