Startseite
» NETZWERK-ADMIN
»
Nextcloud-Warnung „Der PHP OPcache ist nicht ordnungsgemäß konfiguriert“ beheben
Nextcloud-Warnung „Der PHP OPcache ist nicht ordnungsgemäß konfiguriert“ beheben
Wenn Nextcloud die Meldung „Der PHP-OPcache ist nicht korrekt konfiguriert“ meldet , ist es nicht ratsam, einen umfangreichen Lösungsvorschlag aus einem alten Forenbeitrag einzufügen. Ermitteln Sie zunächst, welches OPcache-Limit oder welche Einstellung Nextcloud beanstandet, und ändern Sie anschließend die tatsächlich von Ihrem Webserver verwendete PHP-Konfiguration.
In der aktuellen Nextcloud-35-Administrationsdokumentation wird OPcache als wichtige PHP-Performance-Schicht behandelt. Nextcloud gibt an, dass das Admin-Panel eine entsprechende Warnung ausgibt, sobald die OPcache-Größenbeschränkung 90 % der zugewiesenen Kapazität überschreitet. Außerdem müssen zwischengespeicherte Codekommentare erhalten bleiben. Das PHP-Handbuch dokumentiert die relevanten Direktiven und ihre Standardwerte. Diese Informationen ermöglichen eine sicherere Optimierung von OPcache: Erhöhen Sie nur die begrenzte Ressource, lassen Sie das erforderliche Verhalten aktiviert und vermeiden Sie Änderungen, die Upgrades erschweren, es sei denn, es gibt einen triftigen Grund dafür.
Die Warnung sollte als diagnostischer Hinweis verstanden werden: Ermitteln Sie die spezifische OPcache-Beschränkung, bevor Sie Speicher- oder Dateianzahlgrenzen ändern.
Was die Nextcloud OPcache-Warnung normalerweise bedeutet
OPcache speichert kompilierten PHP-Bytecode im gemeinsamen Speicher, sodass PHP die gleichen Anwendungsdateien nicht bei jeder Anfrage erneut parsen und kompilieren muss. Nextcloud beschreibt dies als Leistungsverbesserung, und Zend OPcache ist seit PHP 5.5 im Kern enthalten.
Die Warnung kann aus verschiedenen Gründen auftreten. Am häufigsten sind dies Fälle, in denen die OPcache-Kapazität fast voll ist, OPcache für die Web-SAPI deaktiviert ist oder ein erforderliches Verhalten, wie z. B. das Beibehalten von Kommentaren, geändert wurde. Laut dem aktuellen Optimierungsleitfaden von Nextcloud wird eine Größenwarnung angezeigt, wenn das OPcache-Größenlimit 90 % seiner Zuweisung überschreitet, und es wird explizit darauf hingewiesen, dass opcache.save_comments = 1…
Wählen Sie die Lösung anhand der Warnung, nicht anhand einer Universallösung.
Situation
Am besten gleich wechseln
Abtausch
Der OPcache-Speicher liegt über dem Warnschwellenwert von Nextcloud.
opcache.memory_consumptionMäßig erhöhen
Nutzt mehr gemeinsam genutzten Arbeitsspeicher, reduziert aber die Cache-Last.
Internierte Zeichenketten sind fast voll
Zunahmeopcache.interned_strings_buffer
Verbraucht zusätzlichen gemeinsamen Speicher; das Erhöhen von nicht verwandten Grenzwerten bringt keinen Nutzen.
Die Kapazität der zwischengespeicherten Skript-/Dateispeicherplätze ist nahezu erschöpft.
Zunahmeopcache.max_accelerated_files
Eine größere Hashtabelle benötigt mehr Speicherplatz.
OPcache ist deaktiviert
opcache.enable=1Für die Web-PHP-Konfiguration festgelegt
Normal und für Nextcloud empfohlen; überprüfen Sie die korrekte SAPI-Adresse.
opcache.save_commentswurde deaktiviert
Satzopcache.save_comments=1
Es gibt keinen triftigen Nextcloud-spezifischen Grund, diese Funktion zu deaktivieren; Nextcloud erfordert, dass Kommentare erhalten bleiben.
PHP gibt aktuell Standardwerte von 128 MB für `<application>` opcache.memory_consumption, 8 MB für `<application>` opcache.interned_strings_bufferund 10.000 MB für `<application>` an opcache.max_accelerated_files. Diese Werte dienen als Richtwerte und sind nicht für Nextcloud allgemein gültig. Ein kleiner persönlicher Server kommt möglicherweise mit diesen Werten gut zurecht, während eine größere Installation mit vielen Anwendungen mehr Speicherplatz benötigt.
Schritt 1: Bestätigen Sie, welche PHP-Konfiguration Nextcloud tatsächlich verwendet.
Dieser Schritt verhindert viele fehlgeschlagene Reparaturen. Nextcloud dokumentiert, dass der Webserver und das PHP-Befehlszeilenprogramm unterschiedliche Konfigurationsdateien laden können. Auf Debian- und Ubuntu-basierten Systemen sind gängige Pfade beispielsweise `/usr/local/bin/` /etc/php/<version>/fpm/php.ini, /etc/php/<version>/apache2/php.ini`/usr/local/bin/` und `/ usr/local/bin /etc/php/<version>/cli/php.ini/`.
Führen Sie den Befehl aus php --ini, um die CLI-Konfiguration anzuzeigen. Gehen Sie jedoch nicht davon aus, dass es sich um dieselbe Datei handelt, die von PHP-FPM oder Apache verwendet wird. Verwenden Sie für die Web-SAPI phpinfo()nur dann eine temporäre Seite, wenn Sie diese schützen und sofort wieder entfernen können. Alternativ können Sie Ihre PHP-FPM-Pool-/Dienstkonfiguration und die distributionsspezifischen Moduldateien überprüfen.
Empfehlung: Läuft Nextcloud hinter Nginx oder Apache mit PHP-FPM, passen Sie die FPM-OPcache-Konfiguration an. Nutzt Apache mod_php, ändern Sie die Apache-PHP-Konfiguration. Achten Sie auf eine einheitliche CLI-Konfiguration, wenn Hintergrundprozesse dasselbe Verhalten erfordern. Beachten Sie jedoch, dass die Browserwarnung vom Pfad der Webanfrage abhängt.
Schritt 2: Bearbeiten Sie den kleinsten Satz von OPcache-Direktiven, der das Problem löst.
Bearbeiten Sie die vom Web-SAPI verwendete OPcache-Konfiguration. Erhöhen Sie nur die Ressourcen, die begrenzt sind, anstatt blind eine überdimensionierte Voreinstellung zu kopieren.
Nachfolgend ist ein konservatives Beispiel für einen einfachen Server dargestellt. Die numerischen Werte sind als Ausgangspunkte und nicht als Garantien zu verstehen:
Wenn Nextcloud meldet, dass der OPcache-Speicher fast voll ist, kann eine Erhöhung von 128 MB auf 256 MB sinnvoll sein, sofern der Server über ausreichend freien Arbeitsspeicher verfügt. Weist die Warnung stattdessen auf internisierte Zeichenketten oder zwischengespeicherte Skripte hin, sollte deren Grenzwert erhöht werden, anstatt nur den Arbeitsspeicher. Auf einem VPS mit begrenztem Arbeitsspeicher kann ein direkter Sprung auf 512 MB den für PHP-FPM-Worker, die Datenbank, Redis und das Betriebssystem verfügbaren Arbeitsspeicher reduzieren.
Wie sieht es mit den Revalidierungseinstellungen aus?
Nextclouds aktueller Optimierungsleitfaden besagt, dass PHP standardmäßig alle zwei Sekunden zwischengespeicherte Skripte auf Änderungen prüft und empfiehlt nicht, diese Standardeinstellung generell zu ändern. Eine Erhöhung des Prüfintervalls opcache.revalidate_freqkann die Anzahl der Dateisystemprüfungen reduzieren, hat aber den Nachteil, dass Anwendungsaktualisierungen und Änderungen config.phpmöglicherweise erst später sichtbar werden. Das vollständige Deaktivieren der Zeitstempelvalidierung ist ein radikalerer Schritt und kann dazu führen, dass alter Code aktiv bleibt, bis der OPcache manuell geleert oder PHP neu gestartet wird.
Die meisten Administratoren, die lediglich die Warnung beheben möchten, sollten das normale Verhalten beibehalten opcache.validate_timestamps, opcache.revalidate_freqsofern sie den Bereitstellungsablauf nicht genau kennen. Nextcloud weist ausdrücklich darauf hin, dass ungewöhnliches Verhalten nach Upgrades durch veralteten, zwischengespeicherten Code verursacht werden kann, wenn die Revalidierung geändert wurde.
Schritt 3: Starten Sie den richtigen PHP-Dienst neu.
Nach dem Ändern einer INI-Datei muss der PHP-Prozess, der Nextcloud bereitstellt, neu gestartet oder neu geladen werden. Typische Beispiele systemctl restart php8.2-fpmhierfür sind PHP-FPM oder ein Neustart/Neuladen von Apache, wenn mod_php verwendet wird. Ersetzen Sie die Versions- und Dienstnamen durch die Angaben, die auf Ihrem System tatsächlich verwendet werden.
Dies ist umso wichtiger, wenn Sie das Revalidierungsverhalten geändert haben. Durch einen Neustart des entsprechenden Dienstes wird sichergestellt, dass die neue OPcache-Konfiguration geladen wird und Unklarheiten bezüglich veralteten Bytecodes beseitigt werden.
Schritt 4: Überprüfen Sie die Werte, aber überprüfen Sie auch die Web-SAPI.
CLI-Prüfungen sind nützlich, um INI-Dateien zu finden und die Syntax zu bestätigen, aber die Web-SAPI kann eine andere Konfiguration laden.
Nützliche Befehlszeilenprüfungen umfassen:
php --ini
php -i | grep -i opcache
Diese Befehle bestätigen, dass PHP die Direktiven erkennt, beweisen aber nur die CLI-Konfiguration. Falls die Nextcloud-Warnung weiterhin angezeigt wird, vergleichen Sie die geladene Konfiguration der Web-SAPI mit dem Ergebnis der CLI. Dies ist besonders wichtig auf Systemen mit separaten Konfigurationsverzeichnissen (`.php`, `.php` cli, `.php` fpmund apache2INI).
Schritt 5: Administration > Übersicht erneut prüfen
Nach dem Neuladen von PHP aktualisieren Sie bitte Administration > Übersicht. Die OPcache-Warnung sollte verschwinden, sobald die Web-SAPI die erforderlichen Grenzwerte und Einstellungen korrekt verwendet.
Aktualisieren Sie die Nextcloud-Administrationsübersicht nach dem Neustart des PHP-Dienstes. Wenn die Warnung verschwindet, wird die Konfiguration von der richtigen SAPI gelesen und der gemeldete Schwellenwert wird nicht mehr überschritten.
Wenn das Problem weiterhin besteht, erhöhen Sie die Werte nicht willkürlich. Überprüfen Sie stattdessen vier Punkte nacheinander: ob Sie die richtige INI-Datei bearbeitet haben, ob eine später geladene INI-Datei Ihre Einstellung überschreibt, ob der entsprechende PHP-Dienst neu gestartet wurde und ob die Warnung eine andere OPcache-Ressource als die von Ihnen erhöhte angibt.
Wie viel OPcache-Speicher sollten Sie zuweisen?
Es gibt keinen allgemeingültigen optimalen Wert. Ziel ist es, genügend Spielraum zu schaffen, damit der Cache nicht ständig an seine Grenzen stößt, ohne die übrigen Systeme zu beeinträchtigen. Bei einem kleinen VPS empfiehlt es sich, konservativ zu beginnen und die Speicherauslastung im Auge zu behalten. Bei einer Instanz mit vielen Anwendungen oder einem größeren PHP-Codeumfang können 256 MB oder mehr gerechtfertigt sein, wenn die tatsächliche OPcache-Nutzung zeigt, dass 128 MB nicht ausreichen. Auf einem großen Server sollte die Speicherdimensionierung zusammen mit der Anzahl der PHP-FPM-Worker und anderer gemeinsam genutzter Dienste erfolgen.
Der praktische Vergleich ist einfach: Mehr OPcache-Speicher kann Cache-Verdrängungen und Neukompilationen reduzieren, weniger OPcache-Speicher hingegen lässt mehr RAM für gleichzeitig laufende PHP-Prozesse und Datenbanken übrig. Wählen Sie die Einstellung anhand der gemessenen Nutzung und der Warnungen von Nextcloud, nicht anhand der maximalen Anzahl an OPcache-Speichern, die Ihr Server verarbeiten kann.
Häufige Fehler, die dazu führen, dass die Warnung weiterhin angezeigt wird
Bearbeitung nur von PHP über die Kommandozeile: Der Browser verwendet weiterhin PHP-FPM oder mod_php.
Die falsche Grenze anheben: Mehr Speicher behebt nicht das Problem einer vollen Tabelle beschleunigter Dateien.
Vergessen Sie den Neustart: Der laufende PHP-Prozess kann immer noch die alten INI-Werte haben.
Deaktivierung opcache.save_comments: Nextcloud erfordert, dass Kommentare erhalten bleiben.
Kopieren veralteter Tuning-Schnipsel: Alte Anleitungen empfehlen möglicherweise aggressive Revalidierungseinstellungen, die zu Upgrade-Problemen führen.
Empfohlene Vorgehensweise je nach Servertyp
Kleiner, persönlicher Nextcloud-Server: Standardeinstellungen für die erneute Validierung beibehalten, Kommentare speichern und das Limit nur dann erhöhen, wenn der Schwellenwert tatsächlich überschritten wird. Dadurch werden RAM-Verbrauch und unerwartete Betriebsstörungen minimiert.
Bei stark ausgelasteten Mehrbenutzerservern: Überwachen Sie den OPcache-Verbrauch und schaffen Sie zusätzlichen Spielraum, wenn die Administratorwarnung auf eine Überlastung hinweist. Stimmen Sie den OPcache-Speicher mit der Dimensionierung der PHP-FPM-Worker ab, damit eine Optimierung nicht zu systemweitem Swapping führt.
Managed Hosting oder Container-Image: Zuerst muss geklärt werden, wo die PHP-Einstellungen überschrieben werden sollen. Änderungen an einer Datei in einem temporären Container können nach einem erneuten Deployment verloren gehen, während ein Anbieter benutzerdefinierte INI-Werte über sein Control Panel oder die Umgebungskonfiguration zugänglich machen kann.
Abschließende Prüfung
Eine korrekte Lösung besteht aus drei Teilen: Der Web-PHP-Prozess von Nextcloud muss OPcache aktiviert haben, erforderliche Funktionen wie das Laden von Caches opcache.save_comments=1bleiben erhalten, und die zuvor fast ausgelastete OPcache-Ressource verfügt nun über ausreichend freien Speicherplatz. Sobald diese Bedingungen erfüllt sind und PHP neu geladen wurde, sollte die Warnung verschwinden, ohne dass übermäßiger Speicherverbrauch oder riskante Änderungen an der Cache-Validierung erforderlich sind.