Како решити ПХП фаталну грешку: Дозвољена величина меморије од 8388608 бајтова је исцрпљена

Једна од најчешћих и најстрашнијих грешакана које наилазе ПХП кодери гласи: „Фатална грешка: Дозвољена величина меморије од 8388608 бајтова је исцрпљена ...“ праћена нечим попут „(покушао да додијели КСКСКСКС бајтова) у /хоме/ввв/филе.модуле у линији 12.“ Ова фатална ПХП грешка усјева горе, јер ПХП подразумевано има ограничење потрошње меморије од 8 МБ за било коју датој скрипти. То је добра ствар, у ствари, јер не желите да лопта ПХП скрипта сруши ваш сервер тако што ћете провући сву меморију. Али повремено ћете имати ПХП скрипту која обично прелази границу од 8 МБ (рецимо, за увоз или пренос). Да бисте заобишли поруку „Фатал еррор: Дозвољена величина меморије од 8388608 бајтова је исцрпљена…“, једноставно уметните ову линију кода у вашу скрипту на врху:

ини_сет ("мемори_лимит", "16М“);

мемори_лимит

Овим ћете поставити ограничење меморије на 16 МБод 8 МБ. Можете и требате да се усредсредите на овај број тако да буде што нижи без понављања те поруке о грешци. Ово ће само изменити ограничење меморије за одређену ПХП датотеку.

Алтернативно, можете изменити пхп.ини датотеку тако да повећате ограничење меморије. Ово ће утицати на све скрипте на вашем серверу. Једноставно отворите пхп.ини и пронађите линију која гласи „мемори_лимит“ и промените је:

мемори_лимит = 16М

Фатална грешка: Дозвољена величина меморије 134217728 је исцрпљена

Приметио сам у сопственом ПХП-у.ини фајл да је моја задана поставка знатно већа на 128М. Дакле, ако икад примим ову поруку о грешци, гласило би: „Фатална грешка: Дозвољена величина меморије од 134217728 бајтова је исцрпљена…“ и очигледно би био пуно већи проблем. Али има исто решење као "Фатална грешка: Дозвољена величина меморије од 8388608 бајтова је исцрпљена ..." или "Фатал еррор: Дозвољена величина меморије од 16777216 бајтова је исцрпљена ..." или било шта друго. Очигледно је да је дефаулт_ мемори_лимит повећан са 8М на 16М у ПХП 5.2.0 и сада је 128М за ПХП 5.3.0, што би објаснило зашто можда уопште не добијате ову поруку о грешци.

Ограничење меморије такође можете онемогућити постављањем мемори_лимит на –1 у ПХП.ини.

мемори_лимит = -1

То, међутим, из очитих разлога није добра идеја.

Напомена: Такође можете користити линију мемори_лимит на својој .хтаццесс страници.

Запамтите, ово је само заобилазно решење. Заиста, ваш ПХП скрипта би требало не бити већи од 8 МБ, осим ако датотеке за отпремање илирадити нешто друго што очигледно заузима много меморије. Оно што би заиста требало да радите јесте да покушате да откријете зашто ваш сценариј користи толико меморије и покушате да га поправите. Један начин да схватите колико меморије ваша ПХП скрипта користи је коришћење ПХП функције мемори_гет_усаге (). Једноставно је одјекните у било којој тачки скрипте како бисте сазнали где вам употребљава меморија:

ецхо мемори_гет_усаге ();

Ако добијате ову поруку о грешци у Друпалу или Јоомли, вјероватни кривац је нови модул или пакет. На примјер, у Друпалу се учитава страница администратора / модула сваки модула у вашој Друпал инсталацији, који можете добитидлакави ако је прилагођени модул грешан, оштећен или хакиран. Покушајте онемогућити модула један по један да бисте идентификовали коме странка спушта. Такође, неки пружаоци хостинга ће игнорисати ваше покушаје да измените ограничења меморије за ваш ПХП код, тако да ћете можда требати да контактирате своју подршку за хостинг да вам помогне. Понекад сам нашао да требам да уредим датотеку пхп.ини, а понекад ставим код у .хтаццесс датотеку. Било како било, надамо се да су ове информације овде довољне да вас поведу на пут!

0

Слични чланци

Оставите коментар