Как увеличить лимит памяти для PHP более 2 ГБ?
У меня проблема с увеличением лимита памяти для PHP как модуль Apache.
Если я помещаю следующую директиву в конфигурацию Apache, это работает нормально:
php_value memory_limit 1.99G
но над 2GB не работают, он восстанавливает это значение обратно в 128MB.
в чем здесь проблема? Мне нужно больше памяти для некоторых задач, связанных с PDF.
сервер Debian 2.6.32-5-amd64 #1 SMP, PHP 5.3.3-7+squeeze13 с 12 ГБ физической оперативной памяти.
7 ответов
вы пробовали использовать значение в МБ ?
php_value memory_limit 2048M
попробовать редактирование это значение на php.ini
не Apache.
Я бы предположил, что вы смотрите на проблему в неправильном свете. Questtion должен быть "что я делаю, что нужно 2G памяти внутри процесса apache с Php через модуль apache и этот набор инструментов лучше всего подходит для работы?'
Да, вы можете привязать Ракету к ford pinto, но это, вероятно, не правильное решение.
независимо от того, я предоставлю ракету, если она вам действительно нужна... вы можете добавить в начало сценария.
ini_set('memory_limit','2048M');
Это установите его только для сценария. Вам все равно нужно будет сказать apache, чтобы разрешить это для PHP-скрипта (я думаю).
вы должны иметь 64-битную ОС на оборудовании, которое поддерживает 64-битную ОС, 64-битную версию Apache и то же самое для PHP. Но это не гарантирует, что функции, которые работают с PDF можно использовать такие большие размеры памяти. Вам лучше не загружать весь файл в память, разбивать его на куски или использовать файловые функции для поиска на нем без загрузки в ОЗУ.
для других, кто испытывает с той же проблемой, вот описание ошибки в php + патч https://bugs.php.net/bug.php?id=44522
вы также можете попробовать это:
ini_set("max_execution_time", "-1");
ini_set("memory_limit", "-1");
ignore_user_abort(true);
set_time_limit(0);