Elimina l'avviso di Nextcloud OPcache regolando il limite corretto

Per eliminare l'avviso di Nextcloud "L'OPcache PHP non è configurato correttamente", apri l'avviso completo in Impostazioni di amministrazione → Panoramica, quindi aumenta solo il limite OPcache indicato nella configurazione PHP utilizzata dal server web. Riavvia il servizio PHP corrispondente e controlla nuovamente l'avviso; la sola modifica della configurazione PHP da riga di comando potrebbe non modificare la configurazione utilizzata da Nextcloud.

Ad esempio, se Nextcloud segnala che il buffer delle stringhe interne è quasi pieno, aumentare la dimensione opcache.interned_strings_bufferda 16 a 32 MB è un primo aggiustamento ragionevole, a condizione che il server disponga di RAM sufficiente. Un avviso diverso, relativo agli script memorizzati nella cache o alla memoria condivisa, richiede un'impostazione differente.

Perché Nextcloud visualizza questo avviso relativo a OPcache?

OPcache memorizza il bytecode PHP compilato nella memoria condivisa, riducendo la quantità di compilazione necessaria per le richieste web ripetute. Riserva inoltre spazio per le stringhe internate, consentendo a PHP di riutilizzare stringhe identiche. Queste capacità rappresentano limiti separati, pertanto l'espansione di uno non risolve necessariamente un avviso relativo a un altro.

Secondo la documentazione di ottimizzazione del server Nextcloud 35 , il pannello di amministrazione avvisa quando il limite di dimensione di OPcache supera il 90% della sua capacità allocata. Il messaggio può menzionare specificamente un buffer di stringhe interne quasi pieno, un numero limitato di script memorizzati nella cache o memoria condivisa insufficiente. Questo dettaglio determina la soluzione.

Nextcloud richiede anche opcache.save_comments=1, perché dipende dalla conservazione dei commenti nel codice PHP. Un'estensione OPcache disabilitata o la conservazione dei commenti disabilitata è quindi un problema di configurazione, non semplicemente un problema di dimensionamento della cache.

1. Individuare l'ambiente che necessita di attenzione

Accedi come amministratore, vai a Impostazioni di amministrazione → Panoramica e leggi l'avviso OPcache completo. Annota la direttiva esatta, se ne viene indicata una. Non dare per scontato che ogni avviso OPcache significhi che il buffer delle stringhe internate sia sottodimensionato.

  • Il buffer delle stringhe interne è quasi pieno: controlla opcache.interned_strings_buffer.
  • La memoria condivisa di OPcache è quasi piena: controlla opcache.memory_consumption.
  • Script o chiavi memorizzati nella cache che si avvicinano al limite: verificare opcache.max_accelerated_files.
  • OPcache disabilitato o commenti non conservati: controllare opcache.enablee opcache.save_comments.

2. Individua la configurazione PHP che gestisce Nextcloud

Sui server Debian o Ubuntu che utilizzano PHP-FPM, la configurazione di PHP è solitamente organizzata in base alla versione di PHP e all'API del server. Ad esempio, PHP 8.3 FPM potrebbe leggere i file in /etc/php/8.3/fpm/conf.d/, mentre il modulo PHP di Apache potrebbe utilizzare /etc/php/8.3/apache2/conf.d/.

Per visualizzare i servizi PHP-FPM presenti su un host systemd, eseguire:

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

Verifica i file OPcache applicabili, sostituendo la versione di PHP installata:

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

Se non vengono trovati file, controlla le php.iniconvenzioni principali e di packaging della tua distribuzione. Il comando php --iniè utile per identificare la configurazione PHP da riga di comando , ma CLI e PHP-FPM potrebbero caricare impostazioni diverse.

Per Docker o Nextcloud All-in-One, esamina la configurazione PHP all'interno del container Nextcloud e utilizza un metodo di configurazione persistente supportato. La modifica /etc/phpdei file host in genere non configura PHP all'interno di un container; inoltre, la modifica di un file di container generato può essere annullata ricreandolo.

3. Aumentare il limite segnalato senza modificare le impostazioni non correlate

Eseguire un backup del file di configurazione pertinente prima di apportare modifiche. Su un'installazione standard di PHP-FPM su Debian/Ubuntu, un approccio praticabile consiste nell'aggiungere un override locale nella conf.ddirectory FPM di quella versione di PHP. Verificare che questa directory venga effettivamente caricata dall'installazione di PHP-FPM prima di procedere.

Per l' esempio del buffer di stringhe interne , crea o modifica un override locale come /etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini:

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

Qui, 32si intendono 32 MB, non 32 byte. Il valore finale deve essere dimensionato in base all'utilizzo effettivo e alla RAM disponibile.

Se l'avviso indica invece un limite diverso, utilizzare l'esempio corrispondente anziché sommare indiscriminatamente tutti e tre:

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

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

I valori per opcache.memory_consumptionsono espressi in megabyte, mentre opcache.max_accelerated_filesspecifica un limite di chiavi di script. La documentazione ufficiale di PHP OPcache spiega le unità di misura, i valori predefiniti e le possibilità di modifica.

Quando l'avviso indica OPcache disabilitato o commenti mancanti anziché la capacità, verificare invece queste impostazioni:

opcache.enable=1
opcache.save_comments=1

Non spegnere opcache.validate_timestampso prolungare eccessivamente il tempo di esecuzione opcache.revalidate_freqsolo per ignorare questo avviso. Nextcloud avverte che una convalida ritardata della cache può impedire che le modifiche alla configurazione e agli aggiornamenti abbiano effetto tempestivamente.

4. Applica la nuova configurazione

Ad esempio, su un server che esegue PHP 8.3 tramite PHP-FPM, è necessario innanzitutto convalidare la configurazione del servizio, quindi riavviare il servizio corrispondente durante una breve finestra di manutenzione:

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

Sostituire 8.3con la versione di PHP-FPM installata e confermare il nome dell'eseguibile e del servizio prima di eseguire uno dei due comandi. Un riavvio interrompe le richieste gestite da quel pool. Su Apache con mod_php, il servizio rilevante è Apache anziché PHP-FPM; per i container, applicare la procedura di riavvio o ricreazione documentata della propria implementazione, preservando la configurazione.

Se il servizio non si riavvia, ripristina la configurazione di backup e controlla il registro degli errori di PHP-FPM o del server web.

5. Se l'avviso persiste, verificare le impostazioni PHP effettive del sito web.

Innanzitutto, ricarica le impostazioni di amministrazione → Panoramica dopo il riavvio dei processi PHP. Se lo stesso avviso persiste, verifica che la direttiva modificata venga effettivamente caricata dal runtime PHP web e non solo dalla CLI. Controlla la presenza di un file caricato successivamente .inio di un override del pool PHP-FPM che sovrascriva il tuo valore.

Su un server sotto il tuo controllo, puoi ispezionare temporaneamente i valori PHP web utilizzando un endpoint diagnostico con accesso strettamente limitato e ini_get()la funzione PHP. Non lasciare mai una phpinfo()pagina pubblica online: potrebbe rivelare ambiente, percorsi, moduli e altri dettagli di configurazione sensibili. Rimuovi immediatamente qualsiasi endpoint diagnostico dopo la verifica.

Per un avviso persistente relativo alle dimensioni, è consigliabile esaminare l'utilizzo effettivo di OPcache in condizioni di traffico normale anziché raddoppiare ripetutamente i valori. La documentazione di PHPopcache_get_status() descrive le statistiche relative a memoria, stringhe interne e script memorizzati nella cache disponibili per un processo PHP in esecuzione.

L'immagine Docker ufficiale di Nextcloud e le implementazioni All-in-One utilizzano impostazioni PHP predefinite; non dare per scontato che le modifiche a livello di host o i valori consigliati da altre installazioni vengano mantenuti. Consultare il repository Docker ufficiale di Nextcloud o il repository ufficiale di All-in-One per il modello di configurazione corrispondente alla propria implementazione.

Verifica che la soluzione abbia funzionato.

Torna alle impostazioni di amministrazione → Panoramica e verifica che l'avviso specifico relativo a OPcache sia scomparso. Apri e ricarica alcune pagine di Nextcloud per assicurarti che l'applicazione risponda ancora normalmente. Se l'avviso ricompare dopo un utilizzo normale, ricontrolla lo stesso limite misurato e la configurazione PHP web effettiva; l'obiettivo è lasciare un margine sufficiente senza assegnare memoria non necessaria a OPcache.

Lascia un commento

Gestisci i picchi di utilizzo della CPU nell'anteprima di Nextcloud con una coda pianificata.

Sposta il lavoro sulle miniature in una pianificazione in background controllata, ridimensiona le anteprime non utilizzate e verifica la coda senza sovraccaricare il server Nextcloud.

Ottieni la sincronizzazione desktop di Nextcloud: oltre la fase di "Elaborazione file"

Individua il file, la regola di esclusione, il problema di connessione o lo stato del database del client che blocca la sincronizzazione di Nextcloud, quindi verifica che i caricamenti e i download avvengano in sicurezza.

Elimina l'avviso di Nextcloud OPcache regolando il limite corretto

Individua il limite di PHP OPcache che causa l'avviso di Nextcloud, aggiorna la configurazione PHP web corretta, riavvia in modo sicuro e verifica il risultato.

Connettere Nextcloud a CODE Docker: configurazione e compromessi

Connettere Nextcloud a CODE Docker: configurazione e compromessi

Confronta il codice integrato e quello basato su Docker, quindi connetti Collabora Online a Nextcloud tramite un proxy inverso HTTPS sicuro.

Crea un cluster Nextcloud resiliente con Galera

Pianifica un'implementazione HA affidabile di Nextcloud con storage condiviso, blocco Redis, routing MariaDB con supporto al quorum e controlli di failover pratici.

Portare a termine le chiamate Nextcloud Talk quando Direct Media non funziona

Portare a termine le chiamate Nextcloud Talk quando Direct Media non funziona

Configurare e verificare la raggiungibilità di un relay TURN per Nextcloud Talk quando firewall o NAT restrittivi bloccano i flussi multimediali diretti delle chiamate.

Risolvi gli avvisi di integrità di Nextcloud ripristinando i file corretti

Utilizza il report sui file non validi per identificare il codice Nextcloud modificato, mancante o in eccesso, ripristinare in modo sicuro i file attendibili e verificarne il risultato.

Collega Gmail o Microsoft 365 a Nextcloud Mail tramite OAuth2

Configura OAuth2 per Nextcloud Mail con Gmail o Microsoft 365, verifica la ricezione e l'invio e risolvi i problemi più comuni relativi al consenso e al protocollo SMTP.

Sblocca in modo sicuro la modalità di manutenzione di Nextcloud con OCC

Sblocca in modo sicuro la modalità di manutenzione di Nextcloud con OCC

Utilizza OCC per ripristinare l'accesso a Nextcloud, verificare lo stato della migrazione del database e scegliere il comando corretto per le installazioni di archivio, Docker o Snap.

Configura l'accesso LDAP e Active Directory di Nextcloud.

Collega Nextcloud a LDAP o Active Directory, limita l'accesso con filtri per utenti e gruppi e verifica l'autenticazione sicura prima del lancio.