Risolvere l'avviso di Nextcloud "PHP OPcache non è configurato correttamente".

Se Nextcloud segnala "L'OPcache PHP non è configurato correttamente" , la soluzione giusta non è copiare e incollare un lungo blocco di impostazioni da un vecchio post di un forum. Innanzitutto, identifica quale limite o impostazione dell'OPcache Nextcloud sta contestando, quindi modifica la configurazione PHP effettivamente utilizzata dal tuo server web.

Nella documentazione di amministrazione di Nextcloud 35, OPcache è considerato un importante livello di prestazioni per PHP. Nextcloud afferma che il suo pannello di amministrazione genera un avviso quando il limite di dimensione di OPcache supera il 90% della capacità allocata. Richiede inoltre che i commenti del codice memorizzati nella cache vengano conservati. Il manuale di PHP documenta le direttive pertinenti e i relativi valori predefiniti. Queste informazioni offrono un metodo più sicuro per ottimizzare OPcache: aumentare solo la risorsa limitata, mantenere attivo il comportamento richiesto ed evitare modifiche che complichino gli aggiornamenti, a meno che non vi siano validi motivi per farlo.

Panoramica dell'amministrazione di Nextcloud che mostra un avviso di configurazione di PHP OPcache nella parte superiore della pagina.
L'avviso deve essere considerato un indizio diagnostico: identificare lo specifico vincolo di OPcache prima di modificare i limiti di memoria o di numero di file.

Cosa significa solitamente l'avviso di Nextcloud OPcache

OPcache memorizza il bytecode PHP compilato nella memoria condivisa, in modo che PHP non debba analizzare e compilare gli stessi file dell'applicazione a ogni richiesta. Nextcloud descrive questa funzionalità come un miglioramento delle prestazioni e PHP include Zend OPcache nel core fin dalla versione 5.5.

L'avviso può comparire per più di un motivo. I casi più comuni sono che la capacità di OPcache è quasi piena, OPcache è disabilitato per la SAPI web oppure un comportamento richiesto, come la conservazione dei commenti, è stato modificato. La guida di ottimizzazione corrente di Nextcloud afferma che viene mostrato un avviso di dimensionamento quando il limite di dimensione di OPcache supera il 90% della sua allocazione e richiede esplicitamente opcache.save_comments = 1.

Riferimenti ufficiali: Guida all'ottimizzazione del server Nextcloud e a OPcache , Note sulla configurazione PHP di Nextcloud e Configurazione runtime di PHP OPcache .

Scegli la soluzione in base all'avvertimento, non un blocco unico valido per tutti.

SituazioneIl miglior primo cambiamentoScambio
La memoria di OPcache supera la soglia di avviso di Nextcloud.Aumentare opcache.memory_consumptionmoderatamenteUtilizza più RAM condivisa, ma riduce il turnover della cache.
Le stringhe interne sono quasi pieneAumentoopcache.interned_strings_bufferConsuma ulteriore memoria condivisa; l'aumento dei limiti non correlati non apporta alcun vantaggio
Gli slot per script/file nella cache sono quasi pieni.Aumentoopcache.max_accelerated_filesUna tabella hash più grande utilizza più memoria
OPcache è disabilitatoImposta opcache.enable=1la configurazione PHP per il webNormale e consigliato per Nextcloud; verificare la corretta SAPI
opcache.save_commentsera disabileImpostatoopcache.save_comments=1Non esiste un motivo valido specifico di Nextcloud per disabilitarlo; Nextcloud richiede che i commenti vengano conservati.

Attualmente PHP elenca valori predefiniti di 128 MB per opcache.memory_consumption, 8 MB per opcache.interned_strings_buffere 10.000 per opcache.max_accelerated_files. Questi valori predefiniti sono punti di riferimento, non target universali di Nextcloud. Un piccolo server personale potrebbe trovarsi bene con valori simili, mentre un'installazione più grande con molte applicazioni potrebbe richiedere più spazio.

Passaggio 1: Conferma quale configurazione PHP utilizza effettivamente Nextcloud

Questo è il passaggio che previene molti tentativi di correzione falliti. Nextcloud documenta che il server web e PHP da riga di comando possono caricare file di configurazione diversi. Sui sistemi di tipo Debian e Ubuntu, i percorsi comuni includono /etc/php/<version>/fpm/php.ini, /etc/php/<version>/apache2/php.ini, e /etc/php/<version>/cli/php.ini.

Esegui il comando php --iniper visualizzare la configurazione della CLI, ma non dare per scontato che sia lo stesso file utilizzato da PHP-FPM o Apache. Per la SAPI web, utilizza una phpinfo()pagina temporanea solo se puoi proteggerla e rimuoverla immediatamente, oppure controlla la configurazione del pool/servizio PHP-FPM e i file dei moduli specifici della distribuzione.

Raccomandazione: se Nextcloud è in esecuzione dietro Nginx o Apache con PHP-FPM, modificare la configurazione OPcache di FPM. Se Apache utilizza mod_php, modificare la configurazione PHP di Apache. Mantenere la configurazione CLI allineata quando i processi in background richiedono lo stesso comportamento, ma ricordare che l'avviso del browser viene generato dal percorso della richiesta web.

Passaggio 2: Modificare il set minimo di direttive OPcache che risolve il problema

Editor di testo che mostra un file di configurazione di OPcache con le direttive enable, memory, interned strings, accelerated files e save comments.
Modifica la configurazione di OPcache utilizzata dall'API SAPI web. Aumenta solo la risorsa che presenta limitazioni, invece di copiare ciecamente un preset sovradimensionato.

Di seguito viene riportato un esempio prudente per un server di dimensioni modeste. I valori numerici indicati sono da considerarsi punti di partenza e non garanzie:

[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.save_comments=1

Se Nextcloud segnala specificamente che la memoria OPcache è quasi piena, passare da 128 MB a 256 MB può essere un incremento ragionevole quando il server dispone di RAM libera sufficiente. Se invece l'avviso si riferisce a stringhe interne o script memorizzati nella cache, è consigliabile aumentare quel limite anziché solo la memoria. Su un VPS con risorse di memoria limitate, passare direttamente a 512 MB potrebbe ridurre la RAM disponibile per i processi worker di PHP-FPM, il database, Redis e il sistema operativo.

E per quanto riguarda le impostazioni di riconvalida?

La guida di ottimizzazione di Nextcloud attualmente disponibile afferma che PHP, per impostazione predefinita, controlla gli script memorizzati nella cache ogni due secondi per rilevare eventuali modifiche e non raccomanda di modificare questa impostazione predefinita per tutti gli utenti. Aumentare il valore di opcache.revalidate_freqquesta impostazione può ridurre i controlli del filesystem, ma il compromesso è di natura operativa: gli aggiornamenti e le modifiche alle applicazioni config.phppotrebbero richiedere più tempo per essere visibili. Disabilitare completamente la convalida del timestamp è una soluzione più drastica e può lasciare attivo il codice obsoleto finché OPcache non viene svuotato manualmente o PHP non viene riavviato.

Per la maggior parte degli amministratori, è sufficiente ignorare l'avviso opcache.validate_timestampse lasciare opcache.revalidate_freqche le impostazioni rimangano invariate, a meno che non si comprenda il flusso di lavoro di distribuzione. Nextcloud avverte specificamente che un comportamento anomalo dopo gli aggiornamenti può derivare da codice memorizzato nella cache obsoleto quando la convalida è stata modificata.

Passaggio 3: riavviare il servizio PHP corretto

Dopo aver modificato un file INI, riavviare o ricaricare il processo PHP che gestisce Nextcloud. Esempi tipici includono systemctl restart php8.2-fpmPHP-FPM o il riavvio/ricaricamento di Apache quando si utilizza mod_php. Sostituire la versione e il nome del servizio con quelli effettivamente in esecuzione sul sistema.

Questo aspetto è ancora più importante se è stato modificato il comportamento di riconvalida. Il riavvio del servizio corretto garantisce il caricamento della nuova configurazione di OPcache ed elimina le ambiguità relative al bytecode obsoleto.

Passaggio 4: Verificare i valori, ma verificare anche l'API Web.

Terminale che mostra l'output di php --ini e php -i OPcache con lo stato di abilitazione e i valori di configurazione chiave.
I controlli tramite riga di comando sono utili per trovare i file INI e confermare la sintassi, ma l'API web SAPI può caricare una configurazione diversa.

Tra i controlli utili da riga di comando si annoverano:

php --ini
php -i | grep -i opcache

Questi comandi possono confermare che PHP riconosce le direttive, ma dimostrano solo la configurazione CLI. Se l'avviso di Nextcloud persiste, confronta la configurazione caricata dall'API Web con il risultato della CLI. Ciò è particolarmente importante sui sistemi che mantengono alberi cli, fpm, e apache2INI separati.

Passaggio 5: Ricontrolla Amministrazione > Panoramica

Panoramica dell'amministrazione di Nextcloud senza l'avviso OPcache e con indicatori di stato del sistema normali.
Dopo aver ricaricato PHP, aggiorna Amministrazione > Panoramica. L'avviso relativo a OPcache dovrebbe scomparire una volta che l'API Web utilizza limiti adeguati e le impostazioni richieste.

Aggiorna la panoramica di amministrazione di Nextcloud dopo il riavvio del servizio PHP. Se l'avviso scompare, la configurazione viene letta correttamente dall'API SAPI e la soglia segnalata non viene più superata.

Se il problema persiste, non continuare ad aumentare i valori a caso. Verifica quattro cose in quest'ordine: se hai modificato il file INI corretto, se un altro file INI caricato successivamente sovrascrive la tua impostazione, se il servizio PHP pertinente è stato riavviato e se l'avviso fa riferimento a una risorsa OPcache diversa da quella che hai aumentato.

Quanta memoria OPcache dovresti allocare?

Non esiste un valore ottimale univoco. L'obiettivo ideale è avere un margine di sicurezza sufficiente affinché la cache non si avvicini continuamente ai suoi limiti, senza però compromettere il resto dello stack. Per un VPS di piccole dimensioni, è consigliabile iniziare con un valore prudente e monitorare l'utilizzo della memoria. Per un'istanza con molte applicazioni o un codice PHP più esteso, 256 MB o più potrebbero essere giustificati qualora l'utilizzo effettivo di OPcache dimostri che 128 MB sono insufficienti. Su un server di grandi dimensioni, il dimensionamento della memoria dovrebbe essere valutato insieme al numero di worker di PHP-FPM e ad altri servizi condivisi.

Il confronto pratico è semplice: una maggiore quantità di memoria OPcache può ridurre le operazioni di svuotamento della cache e la ricompilazione, ma una minore quantità di memoria OPcache lascia più RAM disponibile per i processi PHP e i database in esecuzione contemporaneamente. La scelta deve basarsi sull'utilizzo effettivo e sugli avvisi segnalati da Nextcloud, non sul valore massimo supportato dal server.

Errori comuni che fanno persistere l'avviso

  • Modifica solo PHP da riga di comando: il browser continua a utilizzare PHP-FPM o mod_php.
  • Aumentare il limite sbagliato: più memoria non risolve il problema di una tabella dei file accelerati piena.
  • Dimenticare il riavvio: il processo PHP in esecuzione potrebbe conservare i vecchi valori del file INI.
  • Disabilitazione opcache.save_comments: Nextcloud richiede che i commenti vengano conservati.
  • Copia di frammenti di configurazione obsoleti: le vecchie guide potrebbero raccomandare impostazioni di riconvalida aggressive che creano problemi durante l'aggiornamento.

Approccio consigliato in base al tipo di server

Server Nextcloud personale di piccole dimensioni: mantieni le impostazioni predefinite di riconvalida, conserva i commenti e aumenta solo il limite che effettivamente supera la soglia. Questo riduce al minimo l'utilizzo della RAM e gli imprevisti operativi.

Server multiutente occupato: monitora il consumo di OPcache e concedi maggiore margine di sicurezza laddove l'avviso dell'amministratore indichi una pressione eccessiva. Coordina la memoria OPcache con il dimensionamento dei worker di PHP-FPM in modo che un'ottimizzazione non crei swapping a livello di sistema.

Hosting gestito o immagine container: innanzitutto, individuate dove si desidera sovrascrivere le impostazioni PHP. La modifica di un file all'interno di un container temporaneo potrebbe comportare la perdita delle modifiche dopo un re-distribuzione, mentre un provider potrebbe esporre valori INI personalizzati tramite il proprio pannello di controllo o la configurazione dell'ambiente.

Controllo finale

Una soluzione corretta si compone di tre parti: il processo PHP web di Nextcloud deve avere OPcache abilitato, il comportamento richiesto deve opcache.save_comments=1rimanere intatto e la specifica risorsa OPcache che era quasi satura ora ha un margine di sicurezza ragionevole. Una volta che queste condizioni sono vere e PHP è stato ricaricato, l'avviso dovrebbe scomparire senza ricorrere ad allocazioni di memoria eccessive o a modifiche rischiose alla convalida della cache.

Lascia un commento

Come monitorare le metriche di Jitsi Videobridge con Prometheus e Grafana

Come monitorare le metriche di Jitsi Videobridge con Prometheus e Grafana

Monitora lo stato di salute, il carico della conferenza e il traffico di Jitsi Videobridge con il suo endpoint Prometheus integrato, quindi esplora e visualizza i dati in Grafana.

Come configurare un nome di dominio personalizzato per Jitsi Meet Docker

Come configurare un nome di dominio personalizzato per Jitsi Meet Docker

Configura un dominio personalizzato per Jitsi Meet Docker con DNS, URL pubblico, HTTPS, Let's Encrypt, porte del firewall, impostazioni NAT e verifica end-to-end.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.

Risolvere l'avviso di Nextcloud "PHP OPcache non è configurato correttamente".

Risolvere l'avviso di Nextcloud "PHP OPcache non è configurato correttamente".

Scopri come diagnosticare e risolvere l'avviso di configurazione di PHP OPcache di Nextcloud controllando l'SAPI PHP attivo, i limiti di dimensionamento, i commenti e le impostazioni di riconvalida.

Risolvere gli errori di migrazione del database Kopano dopo un aggiornamento della versione di MySQL

Risolvere gli errori di migrazione del database Kopano dopo un aggiornamento della versione di MySQL

Risolvere i problemi di migrazione del database Kopano dopo un aggiornamento di MySQL o MariaDB verificando i backup, le versioni del server, le modalità SQL, il set di caratteri, lo stato dello schema e i log.

Come configurare l'autenticazione LDAP e Active Directory in Nextcloud

Come configurare l'autenticazione LDAP e Active Directory in Nextcloud

Collega Nextcloud a LDAP o Active Directory con trasporto sicuro, filtri per utenti e gruppi, attributi di accesso e un'implementazione collaudata.

Risolvere i problemi relativi alle notifiche di Element su Android senza i servizi Google: Guida a UnifiedPush

Risolvere i problemi relativi alle notifiche di Element su Android senza i servizi Google: Guida a UnifiedPush

Risolvi i problemi di notifiche di Element Android sui telefoni senza Google configurando UnifiedPush, le autorizzazioni Android, le impostazioni della batteria ed eseguendo test di verifica affidabili.

Risolvi l'avviso di Nextcloud "Database con alcuni indici mancanti"

Risolvi l'avviso di Nextcloud "Database con alcuni indici mancanti"

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti utilizzando il comando ufficiale occ. Prima di procedere, esegui un backup, visualizza in anteprima le modifiche, avvia la riparazione e verifica il risultato.

Come configurare il Single Sign-On (SSO) con Keycloak in Element Web

Come configurare il Single Sign-On (SSO) con Keycloak in Element Web

Configura l'SSO di Keycloak per Element Web collegando OIDC a Synapse, impostando l'URL di callback esatto, mappando le attestazioni utente e testando il logout.

Risolvere l'errore di avvio di Zimbra "Server LDAP non risponde": una guida pratica al ripristino

Risolvere l'errore di avvio di Zimbra "Server LDAP non risponde": una guida pratica al ripristino

Scopri come diagnosticare e risolvere gli errori di avvio di Zimbra causati da un server LDAP non responsivo, inclusi controlli dei servizi, DNS, porte, certificati, URL LDAP e convalida del ripristino.