Я сталкиваюсь с общей ошибкой "Неустранимая ошибка: недостаточно памяти (выделено 30408704) (попытка выделить 24 байта) ..." Неустранимая ошибка PHP. Страницы, обслуживаемые через Apache, не демонстрируют такого поведения.
Я пробовал следующее:
- Увеличение значения memory_limit в php.ini до гораздо большего значения.
- Увеличение memory_limit внутри самого скрипта с помощью вызовов
ini_set('memory_limit', -1)
, ini_set('memory_limit', '-1')
, ini_set('memory_limit', 100000000)
, ini_set('memory_limit', '128M')
и т. Д.
unset()
использование ненужных массивов и объектов, чтобы побудить сборщик мусора освободить память.
- Связь с веб-хостингом. Как правило, они очень способные и знающие, но не смогли мне помочь и в этом вопросе.
- Я пытался явно включить файл php.ini, используя флаг командной строки
-c
, чтобы вручную выбирать конкретные файлы php.ini с различными значениями.
- Я пытался установить memory_limit в php.ini, используя как необработанные числа байтов, так и такие значения, как 64M, 128M и т. Д.
- Хостинг-провайдер смог запустить скрипт без каких-либо проблем с правами суперпользователя, но у меня возникла та же проблема, что и при запуске его с использованием моего пользователя без полномочий root. Возможно, существует какая-то проблема с разрешениями?
Независимо от того, что я пытаюсь, сообщение об ошибке одно и то же. Похоже, что мои сценарии командной строки игнорируют изменения memory_limit
.
Я стараюсь сделать так, чтобы мои скрипты работали с памятью, но в настоящее время мне нужно проанализировать большие объемы HTML с помощью Simple HTML DOM , и это в анализаторе, который я испытываю проблем с памятью. В попытке уменьшить объем памяти скрипта, я попытался использовать DOMDocument . Это тоже не помогает. Фактически ошибка нехватки памяти теперь вызывается в другом месте скрипта.
Мой вопрос: кто-нибудь сталкивался с такой или подобной проблемой? Есть ли у вас какие-либо рекомендации?
Спасибо.