Risolvi l'avviso relativo al limite di memoria PHP di Nextcloud.

Per eliminare un avviso relativo al limite di memoria PHP di Nextcloud, impostare memory_limitalmeno 512Mnella configurazione PHP utilizzata dal server web, quindi riavviare o ricaricare il servizio PHP pertinente. Il manuale di amministrazione stabile di Nextcloud raccomanda almeno 512 MB per questa impostazione PHP. Il motivo più comune per cui un avviso persiste dopo la modifica di un file è che il server web utilizza una configurazione PHP diversa da quella dell'installazione PHP da riga di comando.

Scegli la procedura più adatta alla tua implementazione: Apache con mod_php, Apache o Nginx con PHP-FPM, un container o un pacchetto Nextcloud gestito. Non modificare un host a caso php.inie presumere che ogni implementazione lo utilizzi. Verifica il risultato dalla pagina Panoramica di amministrazione di Nextcloud, che riflette la configurazione dell'applicazione web.

Cosa significa l'avvertimento?

La memoria allocata da PHP memory_limitindica la quantità massima di memoria che un singolo script PHP può allocare. Non si tratta della RAM totale riservata a Nextcloud e non aumenta la memoria fisica disponibile per il server. Il manuale di Nextcloud raccomanda di configurare almeno 512 MB per questa direttiva. Separatamente, i requisiti di sistema spiegano che il fabbisogno effettivo di memoria del server varia in base a utenti, applicazioni, file e attività; raccomandano almeno 512 MB di RAM per processo PHP, con un minimo di 128 MB.

Aumentare il limite PHP può risolvere un avviso di configurazione e consentire alle richieste che richiedono molta memoria di utilizzare più risorse. Non può aggiungere RAM a un host sottodimensionato, riparare una perdita di memoria o garantire che ogni applicazione venga completata con successo. Se il server è già sotto pressione per quanto riguarda la memoria, un limite più elevato per richiesta potrebbe aumentare il rischio che i processi PHP simultanei esauriscano la RAM di sistema.

Quale configurazione PHP dovresti modificare?

Innanzitutto, identifica come PHP esegue Nextcloud. Un controllo da terminale, ad esempio, php --iniriporta la configurazione della riga di comando (CLI). Le richieste web di Nextcloud potrebbero utilizzare un modulo Apache separato o un servizio PHP-FPM con un'altra configurazione php.inio un pool di override. Nextcloud specifica che PHP per il web e la CLI potrebbero utilizzare file di configurazione diversi.

Nei sistemi derivati ​​da Debian, le posizioni tipiche includono /etc/php/8.x/apache2/php.iniil modulo PHP di Apache e /etc/php/8.x/fpm/php.iniPHP-FPM. La versione effettiva di PHP e i nomi delle directory variano. Altre distribuzioni utilizzano comunemente percorsi diversi, come ad esempio una directory condivisa /etc/php.ini. Considerate questi solo come esempi; utilizzate il vostro gestore di pacchetti, la configurazione dei servizi e l'ambiente di runtime PHP per individuare il file attivo.

Per ispezionare la configurazione della CLI, eseguire:

php --ini
php -i | grep -i '^memory_limit'

Questi comandi sono utili per i processi pianificati che richiamano PHP dalla riga di comando, ma non dimostrano che il processo Nextcloud accessibile tramite browser utilizzi lo stesso valore. Evitate di lasciare una phpinfo()pagina pubblica sul server: potrebbe rivelare percorsi, moduli e dettagli di runtime.

Come si imposta il limite per Apache o PHP-FPM?

Eseguire un backup del file di configurazione attivo prima di modificarlo. Nel file corretto php.ini, individuare la memory_limitriga esistente e impostarla su 512Mo su un valore superiore scelto per il proprio carico di lavoro:

memory_limit = 512M

Utilizza un'unica impostazione attiva anziché aggiungere righe duplicate alla fine di più file. Un pool PHP-FPM può anche definire valori per i suoi worker, quindi controlla la configurazione del pool se il valore php.ininon ha effetto. Alcune implementazioni PHP supportano un'impostazione per directory .user.ini; se questa è attiva dipende dalla configurazione del server e dovrebbe essere confermata con l'amministratore.

Apache utilizza mod_php

Modifica il file php.iniutilizzato da Apache, salvalo e riavvia Apache in modo che il modulo ricarichi le sue impostazioni. I nomi dei servizi variano. Su Debian o Ubuntu il servizio è comunemente chiamato apache2; sui sistemi della famiglia RHEL è comunemente chiamato httpd. Utilizza il nome del servizio per il tuo sistema operativo e per le procedure di manutenzione.

sudo systemctl restart apache2

Sostituire apache2se la distribuzione utilizza un nome di unità diverso. Se Nextcloud viene servito tramite PHP-FPM anziché mod_php, il solo riavvio di Apache non ricaricherà i worker PHP.

Apache o Nginx tramite PHP-FPM

Modifica la configurazione PHP-FPM effettivamente utilizzata dal sito. Dopo aver salvato la modifica, riavvia o ricarica il servizio PHP-FPM corrispondente. La sua unità può includere la versione di PHP, ad esempio php8.3-fpm, oppure utilizzare un altro nome specifico del fornitore.

sudo systemctl restart php8.3-fpm

Utilizza il nome del servizio corretto per la versione di PHP installata. Nginx inoltra le richieste PHP a FPM, quindi la modifica delle impostazioni PHP di solito richiede l'applicazione della modifica a FPM; il solo riavvio di Nginx non ripristina il limite di memoria di PHP. Se la configurazione del pool PHP-FPM sovrascrive memory_limit, modifica l'impostazione del pool o rimuovi la sovrascrittura, quindi riavvia il pool.

E se Nextcloud venisse eseguito in Docker, AIO, Snap o un altro pacchetto?

Utilizza il meccanismo di configurazione per quel metodo di installazione. La modifica dei file PHP dell'host in genere non modifica l'ambiente di runtime PHP all'interno di un container o di un pacchetto isolato. L'immagine Docker ufficiale di Nextcloud documenta la PHP_MEMORY_LIMITvariabile d'ambiente, con un valore predefinito 512Mnella documentazione dell'immagine corrente. Impostala nel file Compose o nella configurazione del container, quindi ricrea o riavvia il container dell'applicazione secondo la procedura di distribuzione.

environment:
  PHP_MEMORY_LIMIT: 512M

Non copiare quell'impostazione per ogni tipo di installazione. Il manuale di Nextcloud afferma che gli ambienti "chiavi in ​​mano" come AIO, Snap, NCP e Community Docker hanno PHP preconfigurato e indirizza gli amministratori alle istruzioni specifiche del pacchetto per la personalizzazione. Per queste configurazioni, utilizzare l'interfaccia o la documentazione supportata per quel pacchetto. I montaggi di volumi persistenti e la configurazione generata possono anche sovrascrivere una modifica manuale una tantum.

Come puoi confermare che l'avviso è stato risolto?

  1. Applica la modifica alla configurazione PHP lato web e riavvia o ricarica il servizio web/PHP pertinente.
  2. Accedi a Nextcloud come amministratore e apri Impostazioni > Amministrazione > Panoramica .
  3. Aggiorna la pagina e rivedi gli avvisi di configurazione. Verifica che l'avviso relativo al limite di memoria PHP sia scomparso.
  4. Esegui un'operazione rappresentativa che in precedenza ha attivato l'avviso, ad esempio l'attività dell'app interessata, e controlla i log di Nextcloud e PHP per individuare eventuali messaggi di esaurimento della memoria.

Se esegui anche processi in background di Nextcloud tramite cron di sistema, verifica separatamente la configurazione PHP della CLI. L'avviso visualizzato sul web può essere rimosso anche se i processi CLI utilizzano ancora un limite inferiore. Conferma il valore della CLI con php --inie php -iper lo stesso binario PHP utilizzato dal comando cron.

Quando è opportuno aumentare il valore oltre i 512 milioni?

Aumenta il limite solo quando l'avviso scompare ma un carico di lavoro documentato raggiunge ancora il limite PHP, oppure quando le linee guida supportate da un'applicazione richiedono un valore maggiore. Verifica prima la memoria effettiva del server, il numero di worker di PHP-FPM, la memoria del database e gli altri servizi. Poiché PHP applica il limite per ogni script, diversi worker occupati possono utilizzare una quantità considerevole di memoria contemporaneamente. Imposta un limite misurato che si adatti al budget di memoria dell'host invece di utilizzare -1, che PHP documenta come privo di limiti di memoria.

Se l'avviso scompare ma il server continua a rallentare o i processi vengono terminati, controlla l'utilizzo della memoria di sistema e dello swap, i log di PHP-FPM e i log di Nextcloud. Valuta se una specifica applicazione o richiesta sta consumando memoria eccessiva. Una cache di memoria come APCu o Redis risolve i problemi di caching e prestazioni; non sostituisce l'impostazione di PHP memory_limit. Modifica un fattore alla volta in modo da poter verificare se il risultato è migliorato.

Controlli rapidi in base ai sintomi

  • L'avviso persiste anche dopo aver modificato php.ini: verifica se hai modificato il file CLI anziché quello di Apache/FPM, oppure se un'impostazione del pool lo sovrascrive.
  • L'avviso scompare, ma un'attività cron continua a fallire: controlla il binario PHP della CLI e la sua configurazione separata.
  • Il server web restituisce un errore dopo il riavvio: controlla lo stato e i log del servizio del server web o di PHP-FPM e ripristina il backup se la modifica della configurazione ha causato un errore all'avvio.
  • L'avviso scompare, ma il sistema host esaurisce la RAM: ridurre la concorrenza, aggiungere memoria o identificare il processo che sta utilizzando la memoria prima di aumentare ulteriormente il limite PHP.
  • Se si utilizza un container o un pacchetto preconfigurato, è necessario modificare l'impostazione PHP supportata dal pacchetto anziché il file php.ini dell'host.

Riferimenti ufficiali

Lascia un commento

Correggere gli errori E2EE di Element Web "Impossibile decrittografare l'evento".

Correggere gli errori E2EE di Element Web "Impossibile decrittografare l'evento".

Risolvi gli errori di decrittazione di Element Web verificando la verifica del dispositivo, il backup delle chiavi, le chiavi di ripristino e le chiavi della stanza mancanti, senza rischiare di perdere la cronologia dei messaggi.

Come configurare e applicare l'autenticazione a due fattori (2FA) in Nextcloud

Come configurare e applicare l'autenticazione a due fattori (2FA) in Nextcloud

Scopri come abilitare i provider di autenticazione a due fattori di Nextcloud, imporre l'autenticazione a due fattori per utenti o gruppi, preparare il ripristino e verificare gli accessi e le app client.

Come limitare l'inoltro di email in uscita tramite indirizzo IP in Zimbra

Come limitare l'inoltro di email in uscita tramite indirizzo IP in Zimbra

Con zimbraMtaMyNetworks, limita l'inoltro di email in uscita non autenticate in Zimbra agli indirizzi IP attendibili. Scopri come ispezionare, aggiornare, ricaricare e verificare la lista degli indirizzi consentiti in modo sicuro.

Risolvi l'avviso relativo al limite di memoria PHP di Nextcloud.

Risolvi l'avviso relativo al limite di memoria PHP di Nextcloud.

Imposta il valore di `memory_limit` di PHP ad almeno 512 MB per Nextcloud, trova la configurazione PHP web corretta, riavvia Apache o PHP-FPM e verifica che l'avviso sia scomparso.

Come configurare un server Matrix Coturn TURN/STUN per chiamate audio e video

Come configurare un server Matrix Coturn TURN/STUN per chiamate audio e video

Configura Coturn con Synapse per le chiamate Matrix WebRTC. Configura le credenziali condivise, il NAT, le porte del firewall, le opzioni TLS e distingui TURN (versione legacy) da MatrixRTC e LiveKit.

Come configurare l'app Nextcloud Mail con l'autenticazione OAuth2

Come configurare l'app Nextcloud Mail con l'autenticazione OAuth2

Configura Nextcloud Mail con OAuth2 per Gmail o Microsoft 365, verifica l'accesso IMAP/SMTP, risolvi i problemi di reindirizzamento e conosci i limiti.

Come risolvere l'avviso di sessione "Impossibile verificare l'identità" in Element

Come risolvere l'avviso di sessione "Impossibile verificare l'identità" in Element

Risolvi l'avviso di sessione "Impossibile verificare l'identità" di Element verificando l'identità con un altro dispositivo attendibile o con una chiave di ripristino e scopri quando è possibile eseguire un ripristino in sicurezza.

Migrare le caselle di posta di Kopano a Grommunio o Zammad: scegliere la strada giusta

Migrare le caselle di posta di Kopano a Grommunio o Zammad: scegliere la strada giusta

Confronta la migrazione da Kopano a grommunio e Zammad. Scopri quali dati della casella di posta elettronica ciascun metodo può conservare, come effettuare un test e verificare i risultati e quando è opportuno utilizzare IMAP o un'importazione personalizzata.

Come migrare in modo sicuro una cartella dati di Nextcloud su un disco rigido esterno

Come migrare in modo sicuro una cartella dati di Nextcloud su un disco rigido esterno

Spostare una directory di dati Nextcloud su un disco rigido esterno senza interrompere i riferimenti ai file. Utilizzare in tutta sicurezza backup, un mount persistente, rsync, permessi e un collegamento simbolico.

Risolvi il problema dei processi Cron di Nextcloud che non vengono eseguiti automaticamente con systemd

Risolvi il problema dei processi Cron di Nextcloud che non vengono eseguiti automaticamente con systemd

Risolvere i problemi relativi ai timer cron di systemd di Nextcloud su Ubuntu verificando l'utente del servizio, i percorsi di PHP e Nextcloud, l'attivazione del timer e la cronologia di esecuzione dei processi.