Acasă
» ADMIN. REȚEA
»
Remediați avertismentul Nextcloud „OPcache-ul PHP nu este configurat corect”
Remediați avertismentul Nextcloud „OPcache-ul PHP nu este configurat corect”
Dacă Nextcloud raportează mesajul „OPcache-ul PHP nu este configurat corect” , soluția corectă nu este să lipiți un bloc mare de optimizare dintr-o postare veche pe forum. Mai întâi identificați ce limită sau setare OPcache obiectează Nextcloud, apoi modificați configurația PHP utilizată efectiv de serverul dvs. web.
În documentația actuală de administrare Nextcloud 35, OPcache este tratat ca un strat important de performanță PHP. Nextcloud spune că panoul său de administrare generează un avertisment aferent atunci când o limită de dimensiune OPcache depășește 90% din capacitatea alocată. De asemenea, necesită păstrarea comentariilor la codul din cache. Manualul propriu al PHP documentează directivele relevante și valorile implicite ale acestora. Aceste informații vă oferă o modalitate mai sigură de a regla OPcache: creșteți doar resursa constrânsă, mențineți comportamentul necesar activat și evitați modificările care complică actualizările, cu excepția cazului în care aveți un motiv pentru acestea.
Avertismentul trebuie tratat ca un indiciu de diagnostic: identificați constrângerea specifică OPcache înainte de a modifica limitele de memorie sau numărul de fișiere.
Ce înseamnă de obicei avertismentul Nextcloud OPcache
OPcache stochează bytecode-ul PHP compilat în memoria partajată, astfel încât PHP să nu fie nevoit să analizeze și să compileze aceleași fișiere de aplicație la fiecare cerere. Nextcloud descrie acest lucru ca o caracteristică de performanță, iar PHP a inclus Zend OPcache în nucleu încă de la PHP 5.5.
Avertismentul poate apărea din mai multe motive. Cele mai frecvente cazuri sunt atunci când o capacitate OPcache este aproape completă, OPcache este dezactivat pentru SAPI web sau un comportament necesar, cum ar fi păstrarea comentariilor, a fost modificat. Ghidul actual de optimizare Nextcloud precizează că un avertisment de dimensionare este afișat atunci când o limită de dimensiune OPcache depășește 90% din alocarea sa și necesită în mod explicit opcache.save_comments = 1.
Alegeți soluția pe baza avertismentului, nu pe baza unui blocaj universal.
Situaţie
Cea mai bună primă schimbare
Compromis
Memoria OPcache depășește pragul de avertizare al Nextcloud
Crește opcache.memory_consumptionmoderat
Folosește mai multă memorie RAM partajată, dar reduce pierderea memoriei cache
Șirurile internate sunt aproape pline
Creșteopcache.interned_strings_buffer
Consumă memorie partajată suplimentară; creșterea limitelor fără legătură nu oferă niciun beneficiu
Sloturile de script/fișiere din cache sunt aproape de capacitate maximă
Creșteopcache.max_accelerated_files
O tabelă hash mai mare folosește mai multă memorie
OPcache este dezactivat
Set opcache.enable=1pentru configurația web PHP
Normal și recomandat pentru Nextcloud; verificați SAPI-ul corect
opcache.save_commentsa fost dezactivat
Setopcache.save_comments=1
Nu există niciun motiv semnificativ specific Nextcloud pentru a-l dezactiva; Nextcloud necesită păstrarea comentariilor
PHP listează în prezent valori implicite de 128 MB pentru opcache.memory_consumption, 8 MB pentru opcache.interned_strings_bufferși 10.000 pentru opcache.max_accelerated_files. Aceste valori implicite sunt puncte de referință, nu ținte universale Nextcloud. Un server personal mic poate fi suficient în apropierea lor, în timp ce o instalație mai mare, cu multe aplicații, poate necesita mai mult spațiu liber.
Pasul 1: Confirmați ce configurație PHP folosește de fapt Nextcloud
Acesta este pasul care previne multe remedieri eșuate. Nextcloud documentează faptul că serverul web și PHP-ul din linia de comandă pot încărca fișiere de configurare diferite. Pe sistemele de tip Debian și Ubuntu, căile comune includ /etc/php/<version>/fpm/php.ini, /etc/php/<version>/apache2/php.ini, și /etc/php/<version>/cli/php.ini.
Executați php --inipentru a vedea configurația CLI, dar nu presupuneți că este același fișier folosit de PHP-FPM sau Apache. Pentru SAPI web, utilizați o phpinfo()pagină temporară doar dacă o puteți proteja și elimina imediat sau inspectați configurația pool-ului/serviciului PHP-FPM și fișierele de module specifice distribuției.
Recomandare: dacă Nextcloud rulează în spatele Nginx sau Apache cu PHP-FPM, modificați configurația FPM OPcache. Dacă Apache folosește mod_php, modificați configurația Apache PHP. Mențineți configurația CLI aliniată atunci când joburile în fundal necesită același comportament, dar rețineți că avertismentul browserului este generat de calea cererii web.
Pasul 2: Editați cel mai mic set de directive OPcache care rezolvă problema
Editați configurația OPcache utilizată de SAPI-ul web. Măriți doar resursa care este constrânsă, în loc să copiați orbește o presetare supradimensionată.
Un exemplu conservator pentru un server modest este prezentat mai jos. Tratați valorile numerice ca puncte de plecare, nu ca garanții:
Dacă Nextcloud indică în mod specific că memoria OPcache este aproape plină, trecerea de la 128 MB la 256 MB poate fi o modificare incrementală rezonabilă atunci când serverul are suficientă RAM liberă. Dacă avertismentul indică în schimb șiruri de caractere interne sau scripturi memorate în cache, creșteți limita respectivă, nu doar memoria. Pe un VPS cu restricții de memorie, trecerea directă la 512 MB poate reduce memoria RAM disponibilă pentru lucrătorii PHP-FPM, baza de date, Redis și sistemul de operare.
Dar setările de revalidare?
Ghidul actual de optimizare Nextcloud spune că PHP verifică implicit scripturile din cache pentru modificări la fiecare două secunde și nu recomandă schimbarea acestei valori implicite pentru toată lumea. Ridicarea valorii opcache.revalidate_freqpoate reduce verificările sistemului de fișiere, dar compromisul este operațional: actualizările și modificările aplicației config.phppot dura mai mult până devin vizibile. Dezactivarea completă a validării timestamp este mai agresivă și poate lăsa codul vechi activ până când OPcache este șters manual sau PHP este repornit.
Pentru majoritatea administratorilor care încearcă doar să șteargă avertismentul, lăsați opcache.validate_timestampsși opcache.revalidate_freqla comportamentul lor normal, cu excepția cazului în care înțelegeți fluxul de lucru al implementării. Nextcloud avertizează în mod specific că un comportament neobișnuit după actualizări poate rezulta din codul învechit din cache, atunci când revalidarea a fost modificată.
Pasul 3: Reporniți serviciul PHP corect
După modificarea unui fișier INI, reporniți sau reîncărcați procesul PHP care deservește Nextcloud. Exemple tipice sunt systemctl restart php8.2-fpmpentru PHP-FPM sau o repornire/reîncărcare a Apache atunci când mod_php este în uz. Înlocuiți versiunea și numele serviciului cu ceea ce rulează efectiv sistemul dvs.
Acest lucru contează și mai mult dacă ați modificat comportamentul de revalidare. Repornirea serviciului corect garantează că noua configurație OPcache este încărcată și elimină ambiguitatea despre bytecode-ul învechit.
Pasul 4: Verificați valorile, dar verificați și SAPI-ul web
Verificările CLI sunt utile pentru găsirea fișierelor INI și confirmarea sintaxei, dar SAPI-ul web poate încărca o configurație diferită.
Verificările utile din linia de comandă includ:
php --ini
php -i | grep -i opcache
Aceste comenzi pot confirma că PHP recunoaște directivele, dar ele doar dovedesc configurația CLI. Dacă avertismentul Nextcloud persistă, comparați configurația încărcată a SAPI web cu rezultatul CLI. Acest lucru este important mai ales pe sistemele care mențin arbori INI separați cli, fpm, și apache2.
Pasul 5: Verificați din nou Administrare > Prezentare generală
După reîncărcarea PHP, actualizați Administrare > Prezentare generală. Avertismentul OPcache ar trebui să dispară odată ce SAPI-ul web utilizează limite adecvate și setările necesare.
Reîmprospătați prezentarea generală de administrare Nextcloud după repornirea serviciului PHP. Dacă avertismentul dispare, configurația este citită de SAPI-ul corect și pragul raportat nu mai este depășit.
Dacă persistă, nu continuați să măriți valorile la întâmplare. Verificați patru lucruri în ordine: dacă ați editat fișierul INI corect, dacă un alt fișier INI încărcat ulterior suprascrie setarea dvs., dacă serviciul PHP relevant a fost repornit și dacă avertismentul denumește o resursă OPcache diferită de cea pe care ați mărit-o.
Câtă memorie OPcache ar trebui să aloci?
Nu există o singură valoare optimă. Obiectivul util este un spațiu suficient pentru ca memoria cache să nu se apropie continuu de limitele sale, fără a înfometa restul stivei. Pentru un VPS mic, începeți conservator și urmăriți presiunea asupra memoriei. Pentru o instanță cu multe aplicații sau o amprentă de cod PHP mai mare, 256 MB sau mai mult pot fi justificați atunci când utilizarea reală a OPcache-ului arată că 128 MB sunt insuficiente. Pe un server mare, dimensionarea memoriei ar trebui luată în considerare împreună cu numărul de lucrători PHP-FPM și alte servicii partajate.
Comparația practică este simplă: mai multă memorie OPcache poate reduce evicările din cache și recompilarea, dar mai puțină memorie OPcache lasă mai multă memorie RAM pentru workere PHP și baze de date simultane. Alegeți în funcție de utilizarea măsurată și de rapoartele de avertizare Nextcloud, nu în funcție de cel mai mare număr pe care serverul dvs. îl poate accepta.
Greșeli frecvente care fac ca avertismentul să persiste
Editarea CLI numai în PHP: browserul folosește în continuare PHP-FPM sau mod_php.
Ridicarea limitei greșite: mai multă memorie nu remediază un tabel complet de fișiere accelerate.
Uitarea repornirii: procesul PHP care rulează poate avea încă vechile valori INI.
Copierea fragmentelor de reglaje învechite: ghidurile vechi pot recomanda setări agresive de revalidare care creează probleme de actualizare.
Abordare recomandată în funcție de tipul de server
Server Nextcloud personal mic: păstrează valorile implicite de revalidare, păstrează comentariile și crește doar o limită care depășește efectiv pragul. Acest lucru minimizează utilizarea RAM și surprizele operaționale.
Server multi-utilizator ocupat: monitorizați consumul OPcache și permiteți mai mult spațiu acolo unde avertismentul de administrator indică presiune. Coordonați memoria OPcache cu dimensionarea worker-ului PHP-FPM, astfel încât o optimizare să nu creeze schimburi la nivel de sistem.
Găzduire gestionată sau imagine container: mai întâi determinați unde se intenționează să fie suprascrise setările PHP. Editarea unui fișier dintr-un container efemer poate dispărea după o redistribuire, în timp ce un furnizor poate expune valori INI personalizate prin intermediul panoului de control sau al configurației mediului.
Verificare finală
O corecție corectă are trei părți: procesul web PHP al Nextcloud are OPcache activat, comportamentul necesar, cum ar fi „ opcache.save_comments=1Rămâne intact”, iar resursa OPcache specifică care era aproape de capacitate maximă are acum un spațiu rezonabil. Odată ce aceste condiții sunt îndeplinite și PHP a fost reîncărcat, avertismentul ar trebui să dispară fără a recurge la alocări excesive de memorie sau la modificări riscante de validare a memoriei cache.