Проблема лимита памяти в PHP

9
Март
2010

Проблема лимита памяти в PHP / The problem of memory limit in PHP

Доброго времени суток, друзья! Я вот недавно столкнулся с такой проблемой на блоге: я заметил, что в футере не подгружалось "облако тегов" и все остальное, что шло после него. Ну и, соответственно, выводился еррор, типа:

Fatal error: Allowed memory size of XXX bytes exhausted (tried to allocate YYY bytes)... тра-та-та... и название проблемного скрипта...

"хмммм..." подумал я, тем временем открывая Гоогле и вбивая еррор в поиск. Проблема решилась быстро и просто. Сейчас я Вам и опишу)

Я думаю, по тексту ошибки Вы уже поняли в чем проблема. Если нет, то я объясню: проблема в том, что скрипту (который указывается в ошибке) не хватает памяти, чтобы выполнить свои "коварные" функции. То есть, он превышает лимит памяти, который разрешен для выполнения сценариев.

Есть несколько способов решения подобной задачи:

  • создаем файл .htaccess в папке, где находится Ваш "проблемный" файл и пишем следующую опцию:
php_value memory_limit 32M
  • или открываем файл настроек PHP - php.ini, и ищем в нем строчку "memory_limit", далее вписываем желаемый объем памяти, который будет выделятся для выполнения сценария:
memory_limit = 32M
  • или же открываем "проблемный" файл и в начале прописываем следующее свойство:

ini_set('memory_limit', '32M');

32M - это обьем памяти, выделяемый для выполнения сценария. Я написал произвольное число, а Вы уже подбирайте, как Вам надо. Число можете увеличивать до тех пор, пока скрипту начнет хватать памяти.

В ситуации, что случилась у меня, мне помог последний пример. Но несколько месяцев назад, у меня на блоге тоже возникла проблема с перегрузкой памяти, но тут мне помог метод с файлом "php.ini".

Вот и все!) Желаю Вам, чтобы таких ерроров не было на Ваших сайтах ;)

З.Ы. Хороший совет, как можно удалить мета-тэг generator в Wordpress для безопасности Вашего блога.

Подписаться на RSSВы можете подписаться на RSS или на E-mail рассылку:

Оставить комментарий с помощью формы ВКонтакте

Комментариев (16) к “Проблема лимита памяти в PHP”

  1. Yaroslav.CH пишет:

    Первый и третий способ работаю только в том случае, если эта директива разрешена хостером (что встречается редко).
    А второй – для shared хостинга не работает в принципе, поскольку ни один поставщик не даст возможности править php.ini.

    То есть, все три варианта годятся или для VPS/VDS или же выделенного сервера.

  2. farik пишет:

    hosting.ua дает править php.ini

  3. Oleg Mykhailenko пишет:

    hostpro.ua тоже дает возможность править :) Даже сами предоставили файл :-D и у меня простенький хостинг, без всяких выделеных серверов)

    • Канат пишет:

      фига се, круто, не встречал пока таких хостеров =)

      • Oleg Mykhailenko пишет:

        Помимо Украины, они уже работают и для России. В конце этого поста есть баннерок на них ;)

    • Yaroslav.CH пишет:

      А “простенький” это какой? :) Shared или VPS/VDS?

        • Yaroslav.CH пишет:

          Честно – в жизни не видел shared хостинга с возможностью править php.ini и бесконтрольно увеличивать memory_limit :) Как минимум, интересно, как это реализовано чисто технически?

      • Oleg Mykhailenko пишет:

        Если честно, не могу ответить =) У меня возникла проблема с памятью, я отписал в саппорт, мол, можно ли поднять “memory_limit”. Ребята сразу отреагировали и ответили, что без проблем + предоставили файл “php.ini”. Я внес правки в файл, где увеличил память и все заработало. Вот такая история =)

        • Yaroslav.CH пишет:

          Ну, в любом случае – спасибо за информацию, сделаем в памяти заметку по поводу хостинга :) А личные впечатление от него – какие? :)

      • Oleg Mykhailenko пишет:

        Впечатления позитивные =) Заказываю у них хостинг уже 3-й год для разных проектов. Иногда, конечно, сайт может и упасть на некоторое время, но не на долго, пару минут. И это происходит крайне редко.
        Тех.поддержка отличная. Моментальная реакция на письмо. Наверное, максимум, сколько ждал ответ от них, это 20 минут :-D К тому же, круглосуточно, даже на письма в 2-3 часа ночи моментально приходят ответы)))
        Ну, и еще один приятный момент – это отличные цены/хорошие параметры хостинга.

  4. Канат пишет:

    Никогда, слава богу не встречался с этой проблемой.
    По поводу второго способа, это только для выделенных серверов

    • Oleg Mykhailenko пишет:

      Хммм, странно. Но у меня сервер не выделенный. И когда у меня полностью отказался подгружаться сайт из-за памяти, мне как раз и помог 2-й способ. Может это стечение обстоятельств?)

  5. robert пишет:

    :( чот нефига не помогло(
    пишет все время как в плагины вхожу Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 7680 bytes) in
    как быть здесь?хостеру писать?