Come risolvere l'errore irreversibile PHP: dimensione della memoria consentita di 8388608 byte esaurita


ini_set ( “memory_limit”,”16M“);

Ciò imposterà piuttosto il limite di memoria su 16 MBdi 8 MB. Puoi, e dovresti, giocherellare con questo numero in modo che sia il più basso possibile senza ripetere quel messaggio di errore. Ciò modificherà solo il limite di memoria per quel particolare file PHP.
In alternativa, è possibile modificare il file php.ini fino al limite di memoria. Ciò influenzerà tutti gli script sul tuo server. Basta aprire php.ini e trovare la riga che legge "memory_limit" e modificarlo:
memory_limit = 16M

Ho notato nel mio PHP.file ini che il mio valore predefinito è molto più alto a 128M. Quindi, se dovessi mai ricevere questo messaggio di errore, si legge: "Errore irreversibile: dimensione della memoria consentita di 134217728 byte esauriti ..." e ovviamente sarebbe un problema molto più grande. Ma ha la stessa soluzione alternativa di "Errore irreversibile: dimensione della memoria consentita di 8388608 byte esauriti ..." o "Errore irreversibile: dimensione della memoria consentita di 16777216 byte esauriti ..." o altro. Apparentemente, l'impostazione predefinita memory_limit è stata aumentata da 8M a 16M in PHP 5.2.0 e ora è 128M per PHP 5.3.0, il che spiegherebbe perché potresti non ricevere affatto questo messaggio di errore.
Puoi anche disabilitare il limite di memoria impostando memory_limit su -1 in PHP.ini.
memory_limit = -1
Di solito non è una buona idea, per ovvie ragioni.
Nota: è anche possibile utilizzare la riga memory_limit nella pagina .htaccess.
Ora, ricorda, questa è solo una soluzione alternativa. Davvero, il tuo script PHP dovrebbe non essere superiore a 8 MB, a meno che i tuoi file di caricamento ofare qualcos'altro che ovviamente richiede molto utilizzo della memoria. Quello che dovresti davvero fare è cercare di capire perché lo script utilizza così tanta memoria e provare a risolverlo. Un modo per capire quanta memoria sta usando il tuo script PHP è usare la funzione PHP memory_get_usage (). Fai semplicemente eco in qualsiasi punto del tuo script per scoprire dove il tuo utilizzo della memoria sta aumentando:
echo memory_get_usage ();
Se ricevi questo messaggio di errore in Drupal o Joomla, il probabile colpevole è un nuovo modulo o pacchetto. Ad esempio, in Drupal, la pagina di amministrazione / moduli viene caricata ogni modulo nell'installazione di Drupal, che può ottenerepeloso se un modulo personalizzato è difettoso, corrotto o compromesso. Prova a disabilitare i moduli uno per uno per identificare chi sta facendo cadere la festa. Inoltre, alcuni provider di hosting ignoreranno i tuoi tentativi di modificare i limiti di memoria per il tuo codice PHP, quindi potresti dover contattare il supporto di hosting per aiutarti. Ho scoperto che a volte devo modificare il file php.ini e talvolta inserire il codice nel file .htaccess. Ad ogni modo, si spera, queste informazioni qui sono sufficienti per farti arrivare!
lascia un commento