Sådan løses PHP dødelig fejl: Tilladt hukommelsesstørrelse på 8388608 bytes opbrugt

En af de mest almindelige og frustrerende fejlmødt af PHP-kodere lyder: "Fatal error: Tilladt hukommelsesstørrelse på 8388608 bytes udtømt ..." efterfulgt af noget i retning af "(prøvede at allokere XXXX bytes) i /home/www/file.module på linje 12." Denne fatale PHP-fejl afgrøder op, fordi PHP som standard har en hukommelsesbegrænsning på 8 MB for et givet script. Dette er faktisk en god ting, fordi du ikke ønsker, at et useriøst PHP-script skal nedbringe din server ved at svulpe hele hukommelsen. Men lejlighedsvis har du et PHP-script, der normalt overskrider 8 MB-grænsen (siger til import eller upload). For at løse problemet "Fatal error: Tilladt hukommelsesstørrelse på 8388608 bytes opbrugt ..." fejlmeddelelse, skal du blot indsætte denne kodelinje i dit script øverst:

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

memory_limit

Dette vil snarere indstille din hukommelsesgrænse til 16 MBend 8 MB. Du kan og bør pege med dette nummer, så det er så lavt som muligt uden at gentage denne fejlmeddelelse. Dette ændrer kun hukommelsesgrænsen for den bestemte PHP-fil.

Alternativt kan du ændre din php.ini-fil for at øge hukommelsesgrænsen. Dette vil påvirke alle scripts på din server. Åbn blot php.ini og find den linje, der lyder "memory_limit" og ændre den:

memory_limit = 16 M

Dødelig fejl: Tilladt hukommelsesstørrelse på 134217728 er opbrugt

Jeg har bemærket det i min egen PHP.ini-fil, som min standard er meget højere ved 128M. Så hvis jeg nogensinde skulle modtage denne fejlmeddelelse, ville den læse: "Dødelig fejl: Tilladt hukommelsesstørrelse på 134217728 bytes opbrugt ..." og naturligvis være et meget større problem. Men det har den samme løsning som "Fatal error: Tilladet hukommelsesstørrelse på 8388608 bytes opbrugt ..." eller "Fatal error: Tilladet hukommelsesstørrelse på 16777216 bytes udtømt ..." eller hvad som helst. Tilsyneladende blev memory_limit-standardet hævet fra 8M til 16M i PHP 5.2.0 og er nu 128M for PHP 5.3.0, hvilket vil forklare, hvorfor du muligvis ikke får denne fejlmeddelelse overhovedet.

Du kan også deaktivere hukommelsesgrænsen ved at indstille memory_limit til –1 i PHP.ini.

memory_limit = -1

Dette er dog normalt ikke en god idé af åbenlyse grunde.

Bemærk: Du kan også bruge memory_limit-linjen på din .htaccess-side.

Husk nu, dette er kun en løsning. Virkelig, dit PHP-script skal ikke være over 8 MB, medmindre dine uploadede filer ellergør noget andet, der åbenlyst tager meget hukommelsesforbrug i. Hvad du virkelig skulle gøre, prøver at finde ud af, hvorfor dit script bruger så meget hukommelse og forsøger at løse det. En måde at finde ud af, hvor meget hukommelse dit PHP-script bruger, er at bruge PHP-funktionen memory_get_usage (). Du skal blot gentage det på ethvert tidspunkt i dit script for at finde ud af, hvor din hukommelsesforbrug spider:

ekko memory_get_usage ();

Hvis du får denne fejlmeddelelse i Drupal eller Joomla, er den sandsynlige skyldige et nyt modul eller en pakke. I Drupal indlæses for eksempel siden admin / moduler hver modul i din Drupal-installation, som kan fåbehåret, hvis et brugerdefineret modul er buggy, korrupt eller hacket. Prøv at deaktivere moduler en efter en for at identificere, hvad der bringer partiet ned. Nogle hostingudbydere vil også ignorere dine forsøg på at ændre hukommelsesgrænser for din PHP-kode, så du skal muligvis kontakte din hosting-support for at hjælpe dig. Jeg har fundet nogle gange, at jeg har brug for at redigere php.ini-filen og undertiden sætte koden i .htaccess-filen. Uanset hvad, forhåbentlig, er denne info her nok til at komme dig på din vej!

0

Lignende artikler

Efterlad en kommentar