Как увеличить ограничение памяти для PHP более чем на 2 ГБ?

У меня проблема с увеличением предела памяти для 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 и этот набор инструментов лучше всего подходит для работы?»

    Да, вы можете надеть ракету на форд-пинто, но это, вероятно, не правильное решение.

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

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

    Это установит его только для скрипта. Вам все равно нужно будет сказать 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