Ako vyriešiť PHP Závažná chyba: Vyčerpaná povolená veľkosť pamäte 8388608 bajtov


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

Týmto nastavíte limit pamäte na 16 MBako 8 MB. S týmto číslom môžete a mali by ste si poradiť, aby bolo čo najnižšie, bez opakovania tejto chybovej správy. Týmto sa zmení iba limit pamäte pre konkrétny súbor PHP.
Prípadne môžete zmeniť súbor php.ini až po limit pamäte. Ovplyvní to všetky skripty na vašom serveri. Stačí otvoriť php.ini a nájsť riadok, ktorý znie „memory_limit“ a zmeniť:
memory_limit = 16M

Všimol som si vo svojom vlastnom PHP.ini súbor, že môj predvolený je oveľa vyšší na 128 miliónov. Keby som teda mal niekedy dostať túto chybovú správu, čítal by: „Závažná chyba: Vyčerpaná povolená veľkosť pamäte 134217728 bajtov ...“ a očividne to bude oveľa väčší problém. Má však rovnaké riešenie ako „Závažná chyba: vyčerpaná povolená veľkosť pamäte 8388608 bajtov ...“ alebo „Závažná chyba: vyčerpaná povolená veľkosť pamäte 16777216 bajtov ...“ alebo čokoľvek iné. Predvolené nastavenie memory_limit bolo v PHP 5.2.0 zvýšené z 8 na 16 miliónov a teraz je to 128 miliónov pre PHP 5.3.0, čo by vysvetľovalo, prečo sa táto chybová správa nemusí zobraziť vôbec.
Môžete tiež vypnúť limit pamäte nastavením memory_limit na –1 v PHP.ini.
memory_limit = -1
Z pochopiteľných dôvodov to zvyčajne nie je dobrý nápad.
Poznámka: Na stránke .htaccess môžete tiež použiť riadok memory_limit.
Teraz nezabudnite, že toto je iba riešenie. Naozaj, váš skript PHP by mal nie presahovať 8 MB, pokiaľ neodovzdávate súbory aleborobiť niečo iné, čo zjavne vyžaduje veľa využitia pamäte. To, čo by ste mali naozaj robiť, sa snaží zistiť, prečo skript používa toľko pamäte a snaží sa ho opraviť. Jedným zo spôsobov, ako zistiť, koľko pamäte používa skript PHP, je použitie funkcie PHP memory_get_usage (). Jednoducho ju zopakujte kedykoľvek v skripte, aby ste zistili, kde sa zvyšuje využitie pamäte:
echo memory_get_usage ();
Ak sa toto chybové hlásenie zobrazuje v Drupale alebo Joomle, je pravdepodobné, že vinníkom je nový modul alebo balík. Napríklad v Drupale sa načíta stránka admin / modules každý modul vo vašej inštalácii Drupalu, ktorý môžete získaťchlpatý, ak je vlastný modul buggy, poškodený alebo hacknutý. Pokúste sa vypnúť moduly jeden po druhom a zistite, ktorá strana znižuje počet strán. Niektorí poskytovatelia hostingu budú tiež ignorovať vaše pokusy o zmenu limitov pamäte pre váš kód PHP, takže možno budete musieť kontaktovať podporu hostingu, aby vám pomohli. Niekedy som zistil, že musím upraviť súbor php.ini a niekedy vložiť kód do súboru .htaccess. V každom prípade dúfajme, že táto informácia je dostatočná na to, aby vás dostala na cestu!
Zanechať komentár