Fatal error: Allowed memory size of 8388608 bytes exhausted; либо абсолютно пустая страница
Прислано: axel
чт, 23/09/2004 - 21:33
Если во время работы сайта вы столкнулись с подобной ошибкой (она сопровождается еще всякими разными сообщениями, например будет указано при исполении какого модуля не хватило памяти), следует этой памяти скрипту добавить. Раз оно хочет, пусть получит.
- в .htaccess можно добавить строку (при условии, что PHP работает под Apache через mod_php):
php_value memory_limit 16M
- либо в php.ini увеличить аналогичный параметр:
memory_limit = 16M
Следующий вариант можно указывать прямо в своём PHP-скрипте:
ini_set('memory_limit', '16M')
Некоторые скрипты или модули Drupal могут требовать больше памяти — смотрите описание к ним. Например CiviCRM, работающая совместно с Drupal требует минимум 24Мб памяти.
Если ошибка появляется после увеличения памяти, то есть повод задуматься, все ли хорошо в скрипте? Может быть один из модулей имеет неадекватные аппетиты к потреблению памяти - пробуйте отключать модули по очереди и найти виновника.
Updated by Nick: этот же рецепт может помочь, если на сайте переодически вылазят абсолютно пустые страницы.
- Для комментирования войдите или зарегистрируйтесь
неужели .htaccess влияет и на php? очень хорошо тогда...
а это на всех хостингах работает или не на всех? и в каких опциях для .htaccess это доступно, в Апаче указано что можно сделать с помощью .htaccess (это All, Multiviews или что-то вроде этого, не помню точно)?
- Для комментирования войдите или зарегистрируйтесь
Какие опции можно указывать в .htaccess зависит от настроек Apache. На разных хостингах своя политика - у хостера проще спросить. Остаток вопроса не понял :\
--
Axel
- Для комментирования войдите или зарегистрируйтесь
в .htaccess не всё можно использовать (не все директивы), если в конфиге Апача урезаны возможности использования .htaccess, так вот я и спрашиваю, как узнать, какие возможности даны и к каким настройкам относится возможность указать лимит для php... проще спросить у хостера, но хотелось бы и самому знать на будущее...
- Для комментирования войдите или зарегистрируйтесь
Если есть возможность почитать httpd.conf (через ssh, иногда бывает, что и по ftp есть доступ к etc), то смотреть директиву AllowOverride. Если нет - то спрашивать у хостера и просить выставить AllowOverride All.
Настройки могут быть не только в httpd.conf, но и в include, например, vhosts.conf.
- Для комментирования войдите или зарегистрируйтесь
masterhost не дает увеличивать память.
Пересборка собственного php с увеличенной памятью не помогла, т.к. её все равно попросили вежливо убрать после нескольких падений и перегрузок БД-сервера моим php-cgi, который крутанулся n-раз от перегруженных модулей locale, taxonomy_browser. (Частный случай конечно)
- Для комментирования войдите или зарегистрируйтесь
Пишем ini_set("memory_limit","20M") прямо с php скрипта, желательно с начала самого скрипта :-) Сам не пробывал, но должно работать :-)
А прикол с .htaccess - ДЕЙСТВИТЕЛЬНО ПОМАГАЕТ!
И еще - вроди проблема не в наших скриптах, а в memory leak в самом движке php, так что просите хостингов апгрейднутся на php 5
- Для комментирования войдите или зарегистрируйтесь
способ с .htaccess - работает, спасибо.
- Для комментирования войдите или зарегистрируйтесь
Во:
ini_set("memory_limit","20M");
работает! Спасибо! ;)
- Для комментирования войдите или зарегистрируйтесь
Всё зависит от хостера.
У меня например он все эти возможности выключил.
- Для комментирования войдите или зарегистрируйтесь
ini_set("memory_limit","20M");
куда это вставлять, конкретный файл? даже если и модульный, то какой?
- Для комментирования войдите или зарегистрируйтесь
Строка добавляется в index.php после открывающего php-тега.
И лучше выделить 32 мб. памяти.
- Для комментирования войдите или зарегистрируйтесь
Мой хостер тоже не разрешает менять лимит. Однако мне не достаточно 32 мб.
Это я что-то не так делаю или все же проблема с хостингом.
Памяти не хватает только при настройке модулей (включение, выключение, просмотр списка модулей)
- Для комментирования войдите или зарегистрируйтесь
Именно так и есть - в первую очередь падает страница, отображающая список модулей.
Причем проверено, что даже 42 мБ - маловато. Views например лучше вообще не закачивать. ССК - можно, только если других тяжелых модулей не очень много.
- Для комментирования войдите или зарегистрируйтесь
А как же без Views и CCK? Может кто знает как решить проблему? Почему не реализована функция выводить модули не сразу полным списком, а по категориям? По-моему было бы гораздо легче для сервера?
- Для комментирования войдите или зарегистрируйтесь
ССК я ставлю, Views - нет. Судя по-всему нужно 50+ лимита, чтобы страница списка не вызывала Fatal Error.
Хотя если выключить все хоть сколько-нибудь тяжелые модули то вполне возможно что Views и ССК не будут вызывать падение. В любом случае сайт будет тормозить.
Для нормальной работы Drupsl нужен или хороший хостинг (что встречается редко или заметно дороже) или свой сервак ()идеальный вариант.
- Для комментирования войдите или зарегистрируйтесь
ОБычно меняют хостера на того, который позволяет.
- Для комментирования войдите или зарегистрируйтесь









Комментарии