Hur man löser PHP Dödligt fel: Tillåtet minnestorlek på 8388608 byte uttömt

Ett av de vanligaste och frustrerande felenpåträffas av PHP-kodare lyder: "Dödligt fel: Tillåtet minnesstorlek på 8388608 byte uttömt ..." följt av något liknande "(försökte tilldela XXXX-byte) i /home/www/file.module på rad 12." Detta dödliga PHP-fel grödar upp eftersom PHP som standard har en minnesanvändningsgräns på 8 MB för varje givet skript. Det är faktiskt en bra sak eftersom du inte vill att ett falskt PHP-skript ska föra ner din server genom att ta bort allt minne. Men ibland har du ett PHP-skript som normalt överskrider gränsen på 8 MB (säga för att importera eller ladda upp). Om du vill lösa felmeddelandet "Dödligt fel: Tillåtet minnesstorlek på 8388608 byte uttömd ..." sätter du helt enkelt in den här raden i ditt skript längst upp:

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

memory_limit

Detta sätter snarare din minnesgräns till 16 MBän 8 MB. Du kan, och borde, fikra med detta nummer så att det är så lågt som möjligt utan att upprepa det felmeddelandet. Detta kommer bara att ändra minnesgränsen för den specifika PHP-filen.

Alternativt kan du ändra din php.ini-fil för att öka minnesgränsen. Detta påverkar alla skript på din server. Öppna helt enkelt php.ini och hitta raden som läser "minne_limit" och ändra den:

memory_limit = 16M

Dödligt fel: Tillåtet minnestorlek 134217728 slut

Jag har lagt märke till i min egen PHP.ini-fil som min standard är mycket högre vid 128M. Så om jag någonsin skulle få detta felmeddelande skulle det läsa: "Dödligt fel: Tillåtet minnesstorlek på 134217728 bytes uttömt ..." och uppenbarligen är ett mycket större problem. Men det har samma lösning som "Dödligt fel: Tillåtet minnestorlek på 8388608 byte uttömd ..." eller "Dödligt fel: Tillåtet minnesstorlek 16777216 byte uttömt ..." eller vad som helst. Uppenbarligen höjdes standardminnet minne_limit från 8M till 16M i PHP 5.2.0 och är nu 128M för PHP 5.3.0, vilket förklarar varför du inte får det här felmeddelandet alls.

Du kan också inaktivera minnesgränsen genom att ställa minne_limit till –1 i PHP.ini.

memory_limit = -1

Det är dock vanligtvis inte en bra idé av uppenbara skäl.

Obs: Du kan också använda Memory_limit-linjen på din .htaccess-sida.

Kom ihåg att detta bara är en lösning. Verkligen bör ditt PHP-skript inte vara mer än 8 MB, såvida inte dina överförda filer ellergör något annat som uppenbarligen tar mycket minnesanvändning. Det du verkligen bör göra är att försöka ta reda på varför ditt skript använder så mycket minne och försöka fixa det. Ett sätt att ta reda på hur mycket minne ditt PHP-skript använder är att använda PHP-funktionen memory_get_usage (). Återkalla det när som helst i ditt skript för att ta reda på var din minnesanvändning spikar:

echo memory_get_usage ();

Om du får det här felmeddelandet i Drupal eller Joomla är den troliga synderen en ny modul eller paket. I Drupal laddas till exempel admin / modul-sidan varje modulen i din Drupal-installation, som kan fåhårig om en anpassad modul är buggy, skadad eller hackad. Försök att inaktivera moduler en efter en för att identifiera vilken som leder till partiet. Vissa värdleverantörer kommer också att ignorera dina försök att ändra minnesgränserna för din PHP-kod så att du kanske måste kontakta ditt webbhotell för att hjälpa dig. Jag har ibland funnit att jag behöver redigera php.ini-filen och ibland lägga in koden i .htaccess-filen. Hur som helst, förhoppningsvis är den här informationen tillräcklig för att få dig på väg!

0

Liknande artiklar

Lämna en kommentar