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