Se un'applicazione PHP richiede più memoria, non è possibile caricare file di grandi dimensioni o un'operazione di lunga durata si interrompe, i limiti di PHP potrebbero giocare un ruolo.
Tra le impostazioni più importanti ci sono:
memory_limit
upload_max_filesize
post_max_size
max_execution_time
max_input_time
In CURIAWEB-cPanel puoi modificare molti di questi valori tramite il MultiPHP INI-Editor controllare e – entro i limiti previsti per il tuo hosting – adattare.
In questa guida ti mostriamo quali limiti di PHP sono responsabili di quale compito, come modificarli e come capire se un limite di PHP è effettivamente la causa del tuo problema.
Importante: I limiti di PHP non dovrebbero essere impostati preventivamente sui valori più alti possibili. Regola solo i valori effettivamente necessari per la tua applicazione. Un limite più alto non corregge codice difettoso o inefficiente.
Cosa sono i limiti di PHP? #
I limiti di PHP limitano determinate risorse o operazioni di elaborazione di uno script PHP.
Ad esempio, puoi stabilire:
- quanta memoria PHP può utilizzare
- quanto può essere grande un singolo file caricato
- quanto può essere grande una richiesta POST completa
- per quanto tempo può essere eseguito uno script PHP
- quanto tempo PHP può elaborare i dati di input
Questi limiti proteggono l'ambiente di hosting e impediscono, tra le altre cose, che singoli processi consumino risorse all'infinito.
I limiti PHP più importanti a colpo d'occhio #
| Direttiva PHP | Compito |
|---|---|
limite di memoria | Limita la quantità di memoria che uno script PHP può utilizzare. |
upload_max_filesize | Limita la dimensione di un singolo file caricato tramite PHP. |
post_max_size | Limita la dimensione totale dei dati trasferiti tramite una richiesta POST. |
max_execution_time | Limita il tempo di esecuzione di uno script PHP. |
max_input_time | Limita il tempo per l'elaborazione dei dati di input. |
I valori non sembrano del tutto indipendenti l'uno dall'altro. Soprattutto nel caso dei caricamenti di file, diversi limiti devono coincidere.
Dove modifichi i limiti di PHP su CURIAWEB? #
Accedi al tuo cPanel di CURIAWEB e apri:
Software → MultiPHP INI-Editor
Per le modifiche tipiche consigliamo il Modalità base, qualora l'impostazione desiderata sia disponibile lì.
Spieghiamo il funzionamento di base dell'editor MultiPHP INI su Modificare le impostazioni PHP in cPanel.
Raccomandazione CURIAWEB: Usa l'editor INI MultiPHP per le impostazioni PHP supportate. Non distribuire gli stessi valori contemporaneamente su diverse
php.ini-,.user.inio.htaccess-Configurazioni.
1. Selezionare il dominio o l'area corretta #
Apri l'Editor INI di MultiPHP e seleziona l'area di cui desideri modificare la configurazione PHP.
A seconda della configurazione, potrebbero esserti offerti domini o la home directory tra cui scegliere.
Se nel tuo account di hosting sono presenti più siti web, controlla attentamente quale sito web è interessato dalla modifica.
2. Verifica dei valori correnti #
Prima di cambiare qualsiasi cosa, annota i valori attuali.
Per esempio:
memory_limit = valore precedente
upload_max_filesize = valore precedente
post_max_size = valore precedente
max_execution_time = valore precedente
max_input_time = valore precedente
In questo modo puoi ripristinare la configurazione originale se necessario.
Consiglio pratico: Se devi modificare più valori correlati, crea prima uno screenshot. In questo modo avrai documentato lo stato iniziale.
3. Impostare memory_limit #
La direttiva:
limite di memoria
limita la memoria che uno script PHP può utilizzare.
Un valore viene tipicamente specificato, ad esempio, così:
256M
Incluso c'è M per Megabyte.
Quando è rilevante memory_limit? #
Quando un processo PHP raggiunge il limite di memoria consentito, un messaggio di errore può, ad esempio, indicare un avviso come:
Dimensione della memoria consentita esaurita
contenere.
Un tale messaggio contiene spesso anche informazioni su quanta memoria dovrebbe essere utilizzata e in quale file PHP si è verificato l'errore.
aumentare miratamente il memory_limit #
Se la tua applicazione richiede dimostrabilmente più memoria PHP e il tuo hosting lo consente, puoi limite di memoria impostare un valore più alto adeguato nell'editor INI di MultiPHP.
Salva la modifica e ripeti successivamente esattamente l'operazione durante la quale si è verificato l'errore di memoria.
Il consumo di memoria molto elevato dovrebbe essere analizzato #
Se un normale sito web richiede una quantità insolitamente elevata di memoria PHP, non ci si dovrebbe limitare ad aumentare il limite.
Le possibili cause possono essere, ad esempio:
- plugin difettoso
- tema problematico
- codice PHP individuale inefficiente
- enormi quantità di dati
- importazione o esportazione insolitamente complessa
- Errore di programmazione o ciclo
Importante: Se
limite di memoriadeve essere continuamente aumentata senza che si conosca la causa dell'elevato consumo di memoria, si dovrebbe analizzare l'applicazione.
Il memory_limit di PHP e la RAM dell'hosting non sono la stessa cosa #
Il PHP-limite di memoria non deve essere confuso con l'interezza delle risorse di memoria del tuo account di hosting.
CloudLinux gestisce inoltre le risorse a livello di account di hosting.
Un PHP impostato su un livello molto altolimite di memoria pertanto non aumenta automaticamente le risorse complessive a disposizione del tuo account di hosting.
Spiegheremo come controllare queste risorse su Comprendere l'utilizzo delle risorse di CloudLinux in cPanel.
Limite di memoria di WordPress e PHP memory_limit #
In WordPress incontri inoltre termini come:
WP_MEMORY_LIMIT
e, se del caso:
WP_MAX_MEMORY_LIMIT
Questi valori appartengono alla configurazione di WordPress e non sono correlati al PHP lato serverlimite di memoria identico.
WordPress non può semplicemente forzare più memoria PHP di quanto la configurazione PHP o dell'hosting consenta effettivamente.
Breve spiegazione: Un valore alto in
wp-config.phpnon rimuove arbitrariamente un limite PHP lato server inferiore.
Imposta upload_max_filesize #
La direttiva:
upload_max_filesize
determina la dimensione massima di un singolo file che può essere caricato tramite PHP.
Un esempio sarebbe:
64M
Questo limite può essere rilevante, ad esempio, in caso di:
- Caricamenti multimediali di WordPress
- Caricamenti di temi
- Caricamenti di plugin
- File di importazione
- altri moduli di caricamento di un'applicazione PHP
Limite di caricamento in WordPress #
WordPress mostra solitamente una dimensione massima del file nell'area di caricamento.
Se un file è più grande della dimensione consentita visualizzata lì, può upload_max_filesize essere una delle impostazioni rilevanti.
Tuttavia, questo valore non è l'unico limite.
5. controllare anche post_max_size #
Per i caricamenti di file PHP è inoltre necessario:
post_max_size
importante.
Questa direttiva limita la dimensione totale di una richiesta POST.
Un caricamento di file viene solitamente trasmesso all'interno di una tale richiesta.
Perciò bisogna:
upload_max_filesize
post_max_size
essere coordinati in modo sensato.
Perché post_max_size dovrebbe essere più grande del file desiderato #
Una richiesta POST può contenere ulteriori dati di modulo oltre al file vero e proprio.
Se, ad esempio, desideri caricare un file fino a una certa dimensione, dovresti post_max_size offrendo quindi spazio sufficiente per l'intera richiesta.
Uno schema opportunamente coordinato potrebbe ad esempio apparire così:
upload_max_filesize = 64M
post_max_size = 72M
Questi valori sono puramente un esempio della relazione tra i due limiti e non costituiscono una raccomandazione generale di CURIAWEB per ogni sito web.
Importante: Imposta
post_max_sizenon inferiore alla dimensione del file che hai sopraupload_max_filesizeconsentire.
Perché un semplice aumento di upload_max_filesize non basta #
Supponendo che tu stia configurando:
upload_max_filesize = 128M
post_max_size = 32M
Di conseguenza, il limite POST inferiore può comunque impedire il trasferimento corretto di un file di dimensioni adeguate.
In caso di problemi di caricamento, dovresti quindi controllare sempre entrambi i valori.
6. Impostare max_execution_time #
La direttiva:
max_execution_time
limita il tempo massimo di esecuzione di uno script PHP.
Un valore come:
60
equivale tipicamente a 60 secondi.
Un tempo di esecuzione più lungo può diventare rilevante, ad esempio, in caso di processi PHP complessi.
Situazioni tipiche per max_execution_time #
Questi possono includere, ad esempio:
- maggiori importazioni
- maggiori esportazioni
- Elaborazione delle immagini
- determinati processi di backup
- elaborazione dati estesa
- determini processi di aggiornamento
Se davvero max_execution_time la causa dovrebbe essere verificata in base al messaggio di errore o al comportamento.
Tempo massimo di esecuzione superato #
Quando uno script PHP raggiunge il suo limite di tempo, un messaggio di errore può includere, ad esempio:
Tempo massimo di esecuzione superato
In questo caso è max_execution_time immediatamente pertinente.
Verifica tuttavia anche perché il processo richiede così tanto tempo.
Attenzione: Un tempo di esecuzione di diversi minuti non è automaticamente la soluzione giusta. Un servizio esterno bloccato, un ciclo infinito o del codice inefficiente non vengono riparati da un limite di tempo sempre più alto.
Non confondere max_execution_time con il timeout del browser #
Se il tuo browser segnala un timeout, non significa necessariamente che il PHP abbia max_execution_time ha raggiunto.
Tra il browser e PHP sono presenti ulteriori componenti tecnici.
In sintesi:
Browser
↓
Rete
↓
Server web
↓
PHP
↓
Applicazione
↓
Database / servizi esterni
Un'interruzione può verificarsi a diversi livelli.
Un 504 Gateway Timeout non è automaticamente un limite PHP #
Se un sito Web ha un:
Gateway Timeout 504
segnala, se non dovessi automaticamente max_execution_time aumentare.
Un errore 504 significa che un componente del server coinvolto non ha ricevuto una risposta attesa in tempo utile. La causa specifica deve quindi essere indagata.
7. Controllare max_input_time #
La direttiva:
max_input_time
limita il tempo che PHP può impiegare per l'elaborazione dei dati di input.
Non è la stessa cosa di:
max_execution_time
e dovrebbe essere adattata solo se è effettivamente rilevante per lo specifico processo.
max_input_time e grandi moduli #
Nel caso di input molto estesi o di determinate procedure di importazione, l'elaborazione dei dati di input può avere un ruolo.
Se tuttavia un'applicazione fa espressamente riferimento a un'altra direttiva PHP, non dovresti preventivamente max_input_time aumentare.
Salva modifiche #
Dopo aver modificato i valori necessari, salva o applica la configurazione PHP nell'Editor INI di MultiPHP.
In attesa della conferma da parte di cPanel.
9. Controllare i valori dopo il salvataggio #
Controlla successivamente che i valori previsti vengano visualizzati nel MultiPHP INI-Editor.
Se, ad esempio, hai modificato i limiti di upload, verifica entrambi:
upload_max_filesize
nonché
post_max_size
10. Testare nuovamente lo stesso processo interessato #
Ripeti l'operazione che è fallita in precedenza dopo la modifica.
Per esempio:
Errore di memoria
→ eseguire nuovamente la stessa operazione
Caricamento troppo pesante
→ caricare nuovamente lo stesso file
Tempo di esecuzione superato
→ riavviare lo stesso processo
Così puoi verificare se la modifica è stata effettivamente rilevante.
Limite PHP modificato, il problema persiste #
Se l'errore persiste nonostante il limite modificato, non dovresti semplicemente aumentare nuovamente il valore.
Verifica invece se:
- il limite corretto è stato modificato
- il dominio o l'ambito corretto sia stato selezionato
- la modifica è effettivamente efficace
- si raggiunge un altro limite tecnico
- l'applicazione stessa causa un problema
- viene raggiunto un limite di risorse dell'hosting
Rispettare i limiti massimi lato server #
Un account di shared hosting non può modificare i parametri PHP e del server in modo illimitato.
Determinate impostazioni possono essere predefinite lato server o limitate verso l'alto.
Il fatto che tu possa inserire un valore nell'editor MultiPHP INI non significa necessariamente che qualsiasi impostazione arbitrariamente alta diventi tecnicamente efficace.
Importante: I valori di configurazione PHP operano entro i limiti dell'intero ambiente di hosting. Un valore numerico inserito non genera risorse server aggiuntive.
memory_limit di PHP e limite di memoria di CloudLinux #
Questi due termini possono essere facilmente confusi.
In sintesi:
Limite di memoria PHP
→ Configurazione PHP di uno script
Risorse CloudLinux
→ Limitazione delle risorse dell'account di hosting
Se l'account di hosting raggiunge un limite di risorse, un aumento di limite di memoria persino mancare il problema.
Tratteremo i limiti di CloudLinux e la loro valutazione in Limite di risorse raggiunto: identificazione e risoluzione dei limiti di CloudLinux.
Limite di caricamento aumentato, WordPress mostra ancora il vecchio valore #
Se WordPress continua a mostrare una dimensione massima di upload inferiore dopo una modifica, verifica prima di tutto:
- sezione corretta nell'editor MultiPHP INI
upload_max_filesizepost_max_size- se la modifica è stata salvata
- se esistono ulteriori configurazioni PHP locali
- se si applica un limite lato server
Non inserire gli stessi valori per sicurezza in più file di configurazione.
Caricamento di file di grandi dimensioni: PHP non è sempre la strada migliore #
Se desideri semplicemente trasferire un file di grandi dimensioni sul tuo spazio web, il caricamento non deve necessariamente avvenire tramite un'applicazione PHP.
Per i file normali puoi utilizzare, ad esempio, il gestore di file di cPanel o l'FTP.
Spiegheremo come trasferire i file direttamente tramite cPanel su Caricare, scaricare e modificare file in cPanel.
Per trasferimenti di file più grandi o ricorrenti, l'FTP può essere più adatto. Spieghiamo la configurazione su Creare un account FTP in cPanel.
Consiglio pratico: Se desideri semplicemente trasferire un grande file ZIP sul server, spesso è più sensato trasferire il file direttamente tramite l'hosting, anziché aumentare drasticamente i limiti di upload PHP di un'applicazione web.
Grandi plugin o temi per WordPress #
Se un plugin o un tema supera la dimensione di caricamento PHP consentita, potrebbe essere opportuno regolare i limiti di caricamento.
In alternativa, con le opportune competenze, è possibile utilizzare anche un trasferimento di file diretto.
Assicurati di trasferire i file nella directory corretta e di non sovrascrivere le installazioni esistenti in modo incontrollato.
Grandi file multimediali #
Solo perché PHP potrebbe tecnicamente consentire un upload molto grande, non significa automaticamente che un file molto grande abbia senso per un sito web.
Soprattutto le immagini dovrebbero essere dimensionate e ottimizzate in modo appropriato per l'uso sul Web.
File multimediali estremamente grandi possono sovraccaricare lo spazio di archiviazione, i tempi di caricamento e l'elaborazione.
phpMyAdmin e file SQL di grandi dimensioni #
Durante l'importazione di un file SQL tramite phpMyAdmin, i limiti di PHP possono avere un ruolo, ad esempio se il file supera già la dimensione di caricamento consentita.
Tuttavia, un'importazione di database non riuscita può avere molte altre cause.
A ciò appartengono, ad esempio:
- Errore di sintassi SQL
- tabelle esistenti
- record duplicati
- Problemi di set di caratteri o di collazione
- Problemi di autorizzazione
- Limiti del server o del database
- importazione in parte già eseguita
La diagnosi sistematica si trova alla voce L'importazione in phpMyAdmin non funziona: errori e file SQL di grandi dimensioni.
Non importare ciecamente un grosso file SQL più volte #
Se un'importazione di database si interrompe dopo un lungo periodo di esecuzione, non dovresti importare immediatamente di nuovo lo stesso file.
L'importazione potrebbe aver già creato parte delle tabelle o dei dati.
Verifica prima lo stato del database di destinazione e il messaggio di errore specifico.
max_execution_time per i cronjob #
Per le attività pianificate, non dovresti dare per scontato che un problema sia causato esclusivamente da max_execution_time è causato.
I cronjob possono avere percorsi di esecuzione e condizioni al contorno diverse rispetto a una normale chiamata PHP tramite browser.
Tratteremo come configurare i cronjob in Creare un Cronjob in cPanel e impostare correttamente la pianificazione.
Limiti di PHP e prestazioni del sito web #
Limiti PHP molto alti non rendono automaticamente un sito web più veloce.
Per esempio:
limite di memoria = molto alto
≠
sito web automaticamente più veloce
Un limite definisce un confine. Non è un'impostazione di performance nel senso di un acceleratore.
Più memoria può nascondere codice inefficiente #
Se un'applicazione torna a funzionare temporaneamente grazie a un forte aumento del limite di memoria, si dovrebbe comunque verificare se l'effettivo fabbisogno di memoria è plausibile.
Un plugin difettoso, ad esempio, può consumare sempre più memoria fino a quando non viene raggiunto di nuovo un limite più elevato.
Più tempo di esecuzione può mascherare un processo lento #
Lo stesso vale per max_execution_time.
Se un'operazione improvvisamente richiede 300 anziché 30 secondi, un limite più alto può sì evitare un'interruzione, ma non spiega comunque perché il processo richieda così tanto tempo.
In caso di problemi ricorrenti, è quindi opportuno indagare sulla causa effettiva.
Controllare la versione PHP prima della risoluzione dei problemi #
Se i problemi con PHP sono sorti immediatamente dopo una modifica della versione di PHP, è necessario verificare innanzitutto anche la compatibilità dell'applicazione.
Un aumento dei limiti di PHP non risolve un'incompatibilità con una versione di PHP.
Gestisci la versione PHP su CURIAWEB tramite il MultiPHP-Manager.
Usa il registro errori #
Se non è chiaro quale limite venga raggiunto, il registro degli errori può fornire indicazioni importanti.
Un messaggio come:
Dimensione della memoria consentita esaurita
indica in modo molto più specifico la causa rispetto a un'affermazione generale come „il sito web non funziona“.
Ti spieghiamo come trovare e interpretare tali indicazioni alla voce Leggere il log degli errori di cPanel e trovare gli errori del sito web.
Classificare correttamente i messaggi di errore tipici #
Alcuni rapporti forniscono già una forte indicazione del livello pertinente:
| Osservazione | Prima controlla |
|---|---|
Dimensione della memoria consentita esaurita | limite di memoria e causa del consumo di memoria |
| Il file supera la dimensione massima di caricamento | upload_max_filesize e post_max_size |
Tempo massimo di esecuzione superato | max_execution_time e causa della lunga durata |
Limite delle risorse raggiunto | Risorse CloudLinux anziché solo limiti PHP |
Gateway Timeout 504 | esaminare l'intera catena di elaborazione |
Non aumentare tutti i limiti contemporaneamente #
Quando un'applicazione segnala un errore di memoria, di solito non c'è motivo di aumentare contemporaneamente in modo massiccio la dimensione dell'upload, la dimensione del POST e il tempo di esecuzione.
Una modifica mirata facilita la diagnosi.
Regola fondamentale: Leggi il messaggio di errore → identifica il limite rilevante → documenta il valore iniziale → adatta in modo mirato → testa nuovamente la stessa operazione.
Non copiare i limiti PHP tramite .htaccess da guide esterne #
I vecchi tutorial consigliano in parte righe di configurazione PHP all'interno di:
.htaccess
Tali istruzioni possono dipendere dalla modalità PHP utilizzata e, in un ambiente non idoneo, possono persino causare un errore del server.
Utilizza pertanto per le impostazioni descritte qui la gestione PHP prevista nel cPanel di CURIAWEB.
Se tu un esistente .htaccess se devi verificare, trovi la procedura qui sotto .htaccess spiegato e modificato in sicurezza.
Controllare i limiti PHP dopo il trasferimento del sito web #
Se un sito web è stato trasferito da un altro hosting, le configurazioni PHP potrebbero differire.
Il sito web precedente potrebbe, ad esempio, essere stato gestito con valori diversi.
Inoltre, file come:
php.ini
o:
.user.ini
essere stato trasferito dal vecchio hosting.
Se dopo un trasloco si verificano limiti PHP imprevisti o errori, dovresti quindi controllare anche le configurazioni PHP locali esistenti.
Non eliminare la configurazione PHP locale a caso #
Se tu php.ini o .user.ini trova, documenta il loro contenuto o salva il file prima di effettuare qualsiasi modifica.
Potrebbe essere stata utilizzata intenzionalmente da un'applicazione o da una configurazione precedente.
Annullare la modifica #
Se un valore PHP modificato non aiuta o ha effetti imprevisti, puoi ripristinare il valore iniziale precedentemente documentato.
Apri:
Software → MultiPHP INI-Editor
Seleziona l'area corretta e reinserisci il valore originale.
Salva quindi e testa nuovamente il sito web.
Esempio: il caricamento del file è troppo grande #
Supponendo che un'applicazione non possa caricare un file richiesto a causa delle sue dimensioni.
Quindi procedi in modo sistematico:
- Controlla la dimensione del file.
- Apri l'Editor MultiPHP INI.
- Controlla
upload_max_filesize. - Controlla
post_max_size. - Documenta i valori precedenti.
- Adatta i valori solo se strettamente necessario.
- Salva la configurazione.
- Ripeti lo stesso caricamento.
Se il caricamento continua a non funzionare, verifica altri possibili limiti anziché continuare ad aumentare i valori.
Esempio: Memoria PHP insufficiente #
Con un avviso del tipo:
Dimensione della memoria consentita esaurita
procedi nel modo seguente:
- Prendi nota del messaggio di errore completo.
- Verifica quale file o componente viene menzionato.
- Controlla il valore attuale di
limite di memoria. - Verifica se il fabbisogno di memoria dell'applicazione è plausibile.
- Regola il limite in caso di comprovata necessità entro i limiti disponibili.
- Testa di nuovo la stessa procedura.
- Esamina l'applicazione se il consumo di memoria rimane insolitamente alto.
Esempio: Il processo si interrompe dopo molto tempo #
Se un'operazione PHP si interrompe dopo un determinato tempo di esecuzione:
- Prendi nota del messaggio di errore esatto.
- Verifica se effettivamente
Tempo massimo di esecuzione superatoviene segnalato. - Controlla
max_execution_time. - Verifica se la lunga durata del processo è plausibile.
- Aumenta il valore solo in caso di necessità concreta.
- Testa di nuovo la stessa procedura.
- In caso di tempi di esecuzione permanentemente lunghi, analizzare l'applicazione o il processo.
Quando dovresti contattare il supporto? #
Se un limite PHP richiesto non può essere modificato, un valore impostato non ha effetto o un'operazione continua a fallire nonostante impostazioni plausibili, dovresti documentare lo stato attuale nel modo più dettagliato possibile.
Per un'analisi sono particolarmente utili:
- dominio interessato
- versione PHP utilizzata
- direttiva PHP interessata
- valore originale
- nuovo valore impostato
- messaggio di errore preciso
- quale operazione fallisce
- Dimensione del file interessato, se rilevante
- CMS o applicazione utilizzata
- se il problema si è verificato solo dopo una determinata modifica
Non trasmettere password o altri dati di accesso riservati.
Riepilogo #
Puoi trovare i principali limiti PHP nel cPanel di CURIAWEB tramite Software → MultiPHP INI-Editor controllare e adattare entro i limiti disponibili.
limite di memoria limita la memoria PHP, upload_max_filesize la dimensione di un singolo file caricato e post_max_size la dimensione totale di una richiesta POST. max_execution_time riguarda il tempo di esecuzione di uno script PHP, mentre max_input_time riguarda il trattamento dei dati di input.
Per il caricamento dei file è necessario in particolare upload_max_filesize e post_max_size essere opportunamente coordinati tra loro. In caso di problemi di memoria o di tempo di esecuzione, invece, non dovresti limitarti ad aumentare il limite, ma dovresti anche verificare perché l'applicazione richiede una quantità insolita di risorse o di tempo.
I limiti di PHP inoltre non vanno confusi con le risorse totali di CloudLinux del tuo account di hosting. Un valore PHP molto elevato non genera risorse server aggiuntive.
La procedura più importante è quindi la seguente: Identificare l'errore, determinare il limite rilevante, documentare il valore iniziale, regolare in modo mirato e testare nuovamente la stessa operazione.