A PHP megoldása Végzetes hiba: A megengedett 8388608 bájt memória mérete kimerült
ini_set ( „memory_limit”,”16M„);
Ezzel inkább a 16 MB-os memóriakorlátot fogja beállítanimint 8 MB. Lehet, és meg is hegedülhet ezzel a számmal, hogy a lehető legalacsonyabb legyen a hibaüzenet megismétlése nélkül. Ez csak az adott PHP fájl memóriakorlátját fogja megváltoztatni.
Alternatívaként megváltoztathatja a php.ini fájlt a memória korlátozásának eléréséig. Ez befolyásolja a kiszolgálón lévő összes szkriptet. Egyszerűen nyissa meg a php.ini-t, és keresse meg a „memory_limit” szöveget, és módosítsa azt:
memory_limit = 16M
Észrevettem a saját PHP-én.ini fájl, hogy az alapértelmezésem sokkal magasabb 128M-en. Tehát, ha valaha is kapnám ezt a hibaüzenetet, az a következő lenne: „Végzetes hiba: Az 134217728 bájt megengedett memória mérete kimerült…”, és nyilvánvalóan sokkal nagyobb probléma. Ugyanolyan megoldást kínál, mint a „Végzetes hiba: A megengedett memória mérete 8388608 byte kimerült…” vagy a „Végzetes hiba: Az engedélyezett memória mérete 16777216 bájtot kimerült…” vagy bármi más. Nyilvánvaló, hogy a memory_limit alapértelmezett értékét 8M-ről 16M-re emelték a PHP 5.2.0-ban, és most 128M-ot használnak a PHP 5.3.0-ra, ez magyarázza, hogy miért nem kapja meg ezt a hibaüzenetet.
A memóriakorlátot akkor is letilthatja, ha a memóriakorlátot –1 értékre állítja a PHP.ini fájlban.
memory_limit = -1
Ez általában nem jó ötlet, nyilvánvaló okokból.
Megjegyzés: Használhatja a memory_limit sort a .htaccess oldalon is.
Ne felejtsd el, hogy ez csak egy megoldás. Valójában a PHP szkriptnek kellene nem ha meghaladja a fájlokat vagyvalami mást csinál, ami nyilvánvalóan sok memóriafelhasználást igényel. Amit valójában tennie kell, megpróbálja kitalálni, hogy a szkript miért használ annyi memóriát, és megpróbálja kijavítani. Az egyik módja annak, hogy kiszámítsa, mennyi memóriát használja a PHP szkript, a memory_get_usage () PHP funkció használata. Egyszerűen visszhangozza azt a szkript bármely pontján, hogy megtudja, merre tart a memóriahasználat:
echo memory_get_usage ();
Ha Drupalban vagy Joomla-ban kapja ezt a hibaüzenetet, akkor a valószínű bűnös egy új modul vagy csomag. Például Drupalban az admin / modulok oldal betöltődik minden modul a Drupal telepítésében, amely megszerezhetőszőrös, ha az egyéni modul hibás, sérült vagy feltört. Próbálja meg kikapcsolni a modulokat egyenként, hogy meghatározzák, melyik eredményezi a felet. Ezenkívül néhány tárhelyszolgáltató figyelmen kívül hagyja a PHP-kód memóriakorlátjának módosítására tett kísérleteket, ezért előfordulhat, hogy segítségért fordulnia kell a tárhelyszolgálathoz. Néha azt tapasztaltam, hogy szerkesztenem kell a php.ini fájlt, és néha be kell töltenem a kódot a .htaccess fájlba. Akárhogy is, remélhetőleg ez az információ elegendő ahhoz, hogy útba léphessen!
Szólj hozzá