Home
» NETWERKBEHEERDER
»
Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.
Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.
Als Nextcloud meldt "De PHP OPcache is niet correct geconfigureerd" , is de juiste oplossing niet om een groot tuningblok uit een oud forumbericht te kopiëren. Identificeer eerst welke OPcache-limiet of -instelling Nextcloud tegenwerkt en wijzig vervolgens de PHP-configuratie die daadwerkelijk door uw webserver wordt gebruikt.
In de huidige documentatie voor Nextcloud 35 wordt OPcache beschouwd als een belangrijke prestatielaag voor PHP. Nextcloud geeft aan dat het beheerderspaneel een waarschuwing geeft wanneer de OPcache-groottebeperking meer dan 90% van de toegewezen capaciteit bedraagt. Ook is het vereist dat gecachede codecommentaren behouden blijven. De PHP-handleiding zelf beschrijft de relevante richtlijnen en hun standaardwaarden. Deze informatie biedt een veiligere manier om OPcache af te stemmen: verhoog alleen de beperkte resource, houd het vereiste gedrag ingeschakeld en vermijd wijzigingen die upgrades bemoeilijken, tenzij daar een goede reden voor is.
De waarschuwing moet worden beschouwd als een diagnostische aanwijzing: achterhaal de specifieke OPcache-beperking voordat u de geheugen- of bestandslimieten wijzigt.
Wat de Nextcloud OPcache-waarschuwing doorgaans betekent
OPcache slaat gecompileerde PHP-bytecode op in gedeeld geheugen, zodat PHP niet bij elk verzoek dezelfde applicatiebestanden hoeft te parsen en compileren. Nextcloud beschrijft dit als een prestatieverbetering en PHP heeft Zend OPcache al sinds PHP 5.5 in de core opgenomen.
De waarschuwing kan om meerdere redenen verschijnen. De meest voorkomende oorzaken zijn dat de OPcache-capaciteit bijna vol is, OPcache is uitgeschakeld voor de web-SAPI, of dat een vereiste functionaliteit, zoals het bewaren van reacties, is gewijzigd. De huidige afstemmingshandleiding van Nextcloud vermeldt dat een waarschuwing over de grootte wordt weergegeven wanneer de OPcache-groottebeperking meer dan 90% van de toegewezen ruimte overschrijdt, en dat dit expliciet vereist is opcache.save_comments = 1.
Kies de oplossing op basis van de waarschuwing, niet op basis van een standaardoplossing die voor iedereen werkt.
Situatie
Beste eerste verandering
Afweging
Het OPcache-geheugen overschrijdt de waarschuwingsdrempel van Nextcloud.
opcache.memory_consumptionMatig verhogen
Gebruikt meer gedeeld RAM-geheugen, maar vermindert de cache-activiteit.
De interne snaren zijn bijna vol.
Toenameopcache.interned_strings_buffer
Verbruikt extra gedeeld geheugen; het verhogen van niet-gerelateerde limieten levert geen voordeel op.
De cache voor scripts/bestanden is bijna vol.
Toenameopcache.max_accelerated_files
Een grotere hashtabel gebruikt meer geheugen.
OPcache is uitgeschakeld
Stel opcache.enable=1de PHP-webconfiguratie in
Normaal en aanbevolen voor Nextcloud; controleer of de juiste SAPI is geïnstalleerd.
opcache.save_commentswas gehandicapt
Setopcache.save_comments=1
Er is geen zinvolle, Nextcloud-specifieke reden om dit uit te schakelen; Nextcloud vereist dat reacties behouden blijven.
PHP geeft momenteel standaardwaarden van 128 MB voor opcache.memory_consumption, 8 MB voor opcache.interned_strings_bufferen 10.000 MB voor opcache.max_accelerated_files. Deze waarden zijn referentiepunten, geen universele Nextcloud-doelstellingen. Een kleine persoonlijke server kan prima werken met waarden die hier dicht bij liggen, terwijl een grotere installatie met veel applicaties meer ruimte nodig kan hebben.
Dit is de stap die veel mislukte oplossingen voorkomt. Nextcloud documenteert dat de webserver en PHP via de commandoregel verschillende configuratiebestanden kunnen laden. Op Debian- en Ubuntu-achtige systemen zijn veelvoorkomende paden onder andere /etc/php/<version>/fpm/php.ini, /etc/php/<version>/apache2/php.ini, en /etc/php/<version>/cli/php.ini.
Voer het commando uit php --iniom de CLI-configuratie te bekijken, maar ga er niet van uit dat dit hetzelfde bestand is als dat van PHP-FPM of Apache. Gebruik voor de web-SAPI phpinfo()alleen een tijdelijke pagina als u deze kunt beveiligen en direct kunt verwijderen, of controleer de configuratie van uw PHP-FPM-pool/service en de modulebestanden die specifiek zijn voor uw distributie.
Aanbeveling: als Nextcloud achter Nginx of Apache met PHP-FPM draait, pas dan de FPM OPcache-configuratie aan. Als Apache mod_php gebruikt, pas dan de Apache PHP-configuratie aan. Zorg ervoor dat de CLI-configuratie consistent is wanneer achtergrondtaken hetzelfde gedrag vereisen, maar onthoud dat de browserwaarschuwing wordt gegenereerd door het webverzoekpad.
Stap 2: Bewerk de kleinste set OPcache-richtlijnen die het probleem oplost.
Bewerk de OPcache-configuratie die door de web-SAPI wordt gebruikt. Verhoog alleen de bron die beperkt is, in plaats van blindelings een te grote vooraf ingestelde waarde te kopiëren.
Een conservatief voorbeeld voor een bescheiden server wordt hieronder weergegeven. Beschouw de numerieke waarden als uitgangspunten, niet als garanties:
Als Nextcloud specifiek aangeeft dat het OPcache-geheugen bijna vol is, kan het verhogen van 128 MB naar 256 MB een redelijke stapsgewijze aanpassing zijn, mits de server voldoende vrij RAM-geheugen heeft. Als de waarschuwing echter verwijst naar geïnterneerde strings of gecachede scripts, verhoog dan die limiet in plaats van alleen het geheugen. Op een VPS met beperkt geheugen kan een directe verhoging naar 512 MB het beschikbare RAM-geheugen voor PHP-FPM-workers, de database, Redis en het besturingssysteem verminderen.
En hoe zit het met de hervalidatie-instellingen?
Volgens de huidige afstemmingshandleiding van Nextcloud controleert PHP standaard elke twee seconden op wijzigingen in gecachede scripts, en wordt er geen aanbeveling gedaan om deze standaardinstelling voor iedereen te wijzigen. Het verhogen van deze instelling opcache.revalidate_freqkan het aantal bestandsysteemcontroles verminderen, maar dit gaat ten koste van de werking: applicatie-upgrades en -aanpassingen config.phpkunnen langer duren voordat ze zichtbaar zijn. Het volledig uitschakelen van tijdstempelvalidatie is een agressievere aanpak en kan ertoe leiden dat oude code actief blijft totdat de OPcache handmatig wordt gewist of PHP opnieuw wordt opgestart.
Voor de meeste beheerders die alleen de waarschuwing willen verhelpen, is het raadzaam om de rest van de software in de normale modus te laten draaien opcache.validate_timestamps, opcache.revalidate_freqtenzij u de implementatieworkflow begrijpt. Nextcloud waarschuwt specifiek dat ongebruikelijk gedrag na upgrades kan worden veroorzaakt door verouderde code in de cache wanneer de hervalidatie is gewijzigd.
Stap 3: Start de juiste PHP-service opnieuw.
Na het wijzigen van een INI-bestand moet u het PHP-proces dat Nextcloud serveert opnieuw starten of herladen. Typische voorbeelden zijn systemctl restart php8.2-fpmPHP-FPM of een herstart/herlading van Apache wanneer mod_php in gebruik is. Vervang de versie en servicenaam door de versie en servicenaam die daadwerkelijk op uw systeem draaien.
Dit is des te belangrijker als u het hervalidatiegedrag hebt gewijzigd. Door de juiste service opnieuw te starten, wordt gegarandeerd dat de nieuwe OPcache-configuratie wordt geladen en wordt onduidelijkheid over verouderde bytecode weggenomen.
Stap 4: Controleer de waarden, maar controleer ook de web-SAPI.
CLI-controles zijn handig voor het vinden van INI-bestanden en het bevestigen van de syntaxis, maar de web-SAPI kan een andere configuratie laden.
Nuttige commandoregelcontroles zijn onder andere:
php --ini
php -i | grep -i opcache
Deze commando's kunnen bevestigen dat PHP de instructies herkent, maar ze bewijzen alleen de CLI-configuratie. Als de Nextcloud-waarschuwing blijft verschijnen, vergelijk dan de geladen SAPI-configuratie van de webserver met het CLI-resultaat. Dit is vooral belangrijk op systemen die aparte cli, fpmen apache2INI-structuren gebruiken.
Stap 5: Controleer opnieuw Beheer > Overzicht
Na het herladen van PHP, vernieuw je het scherm Beheer > Overzicht. De OPcache-waarschuwing zou moeten verdwijnen zodra de web-SAPI de juiste limieten en instellingen gebruikt.
Vernieuw het Nextcloud-beheeroverzicht na het herstarten van de PHP-service. Als de waarschuwing verdwijnt, wordt de configuratie door de juiste SAPI gelezen en wordt de gemelde drempelwaarde niet langer overschreden.
Als het probleem aanhoudt, blijf dan niet willekeurig waarden verhogen. Controleer vier zaken in de volgende volgorde: of u het juiste INI-bestand hebt bewerkt, of een later geladen INI-bestand uw instelling overschrijft, of de betreffende PHP-service opnieuw is opgestart en of de waarschuwing een andere OPcache-bron noemt dan degene die u hebt verhoogd.
Hoeveel OPcache-geheugen moet je toewijzen?
Er bestaat geen optimale waarde. Het nuttige doel is voldoende marge, zodat de cache niet voortdurend tegen zijn limieten aanloopt, zonder de rest van de stack te belemmeren. Begin bij een kleine VPS conservatief en houd de geheugenbelasting in de gaten. Voor een instantie met veel applicaties of een grotere PHP-codebasis kan 256 MB of meer gerechtvaardigd zijn als het werkelijke OPcache-gebruik aantoont dat 128 MB onvoldoende is. Op een grote server moet de geheugengrootte worden afgestemd op het aantal PHP-FPM-workers en andere gedeelde services.
De praktische vergelijking is eenvoudig: meer OPcache-geheugen kan het verwijderen van cache-items en hercompilatie verminderen, maar minder OPcache-geheugen laat meer RAM over voor gelijktijdige PHP-processen en databases. Kies op basis van het gemeten gebruik en de waarschuwing die Nextcloud rapporteert, niet op basis van het maximale aantal dat uw server aankan.
Veelvoorkomende fouten waardoor de waarschuwing blijft verschijnen
Bij het bewerken van CLI-PHP gebruikt de browser nog steeds PHP-FPM of mod_php.
De verkeerde limiet verhogen: meer geheugen lost een volle tabel met versnelde bestanden niet op.
Vergeet de herstart: het draaiende PHP-proces heeft mogelijk nog steeds de oude INI-waarden.
Uitschakelen opcache.save_comments: Nextcloud vereist dat reacties behouden blijven.
Het kopiëren van verouderde tuning-codefragmenten: oude handleidingen bevelen mogelijk agressieve hervalidatie-instellingen aan die upgrade-problemen veroorzaken.
Aanbevolen aanpak per servertype
Kleine, persoonlijke Nextcloud-server: behoud de standaardinstellingen voor hervalidatie, bewaar reacties en verhoog de limiet alleen als deze daadwerkelijk de drempel overschrijdt. Dit minimaliseert het RAM-gebruik en voorkomt onverwachte operationele problemen.
Drukke server met meerdere gebruikers: monitor het OPcache-verbruik en zorg voor meer bufferruimte waar de beheerderswaarschuwing druk aangeeft. Stem het OPcache-geheugen af op de dimensionering van de PHP-FPM-workers, zodat één optimalisatie niet leidt tot systeemwijde swapping.
Managed hosting of containerimage: bepaal eerst waar PHP-instellingen overschreven moeten worden. Het bewerken van een bestand in een tijdelijke container kan na een herimplementatie verdwijnen, terwijl een provider aangepaste INI-waarden via het controlepaneel of de omgevingsconfiguratie beschikbaar kan stellen.
Eindcontrole
Een correcte oplossing bestaat uit drie onderdelen: het web-PHP-proces van Nextcloud moet OPcache ingeschakeld hebben, het vereiste gedrag moet opcache.save_comments=1intact blijven en de specifieke OPcache-bron die bijna vol was, moet nu voldoende ruimte hebben. Zodra aan deze voorwaarden is voldaan en PHP opnieuw is geladen, zou de waarschuwing moeten verdwijnen zonder dat er overmatige geheugenallocaties of risicovolle wijzigingen in de cachevalidatie nodig zijn.