PHP: настройки memory_limits> 1024M не работает - PullRequest
52 голосов
/ 14 февраля 2012

По плохим причинам мне нужно установить memory_limits выше 1G для каталога, но на моем PHP 5.2.17 на сервере Lenny, когда я ставлю, например, 2048M, я получаю только значение по умолчанию php.ini (256M).

PHP работает как модуль apache, phpinfo дает нам (для каталога)

memory_limit    1024M   256M
suhosin.memory_limit    0   0

Есть ли ограничение из-за модуля apache или PHP conf?Я знаю, что на сервере только 4 ГБ ОЗУ, это просто специальный скрипт.

Ответы [ 5 ]

102 голосов
/ 14 февраля 2012

Как вы пытаетесь установить ограничение памяти?phpinfo () показывает текущий предел зарезервированной памяти PHP, это то, что доступно из-за того, что php.ini имеет этот предел памяти

Запись в Apache .htaccess в каталоге скриптов может работать, если ваш сервер поддерживаетустановка команд PHP через .htaccess:

php_value memory_limit 2048M

Поскольку возможно, что команды .htaccess для установки значений PHP отключены.Затем вы также можете попробовать это из кода PHP:

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

Если это не работает и .htaccess также не работает, то вам необходимо связаться с администраторами сервера.

28 голосов
/ 15 марта 2016
ini_set("memory_limit",-1);

Это обычно снимает ограничения

23 голосов
/ 01 ноября 2015

У меня была такая же проблема, когда мне нужно было, чтобы мой PHP-скрипт использовал 4 ГБ ОЗУ.Причина не имеет значения.Цель состояла в том, чтобы установить ограничение в 4 ГБ в PHP.

Первоначальная идея состояла в том, чтобы использовать ini_set('memory_limit', '4096M');, но я обнаружил, что это не сработало.Я понятия не имею, как и почему, если честно, но это не было важно для меня в то время.Я нахожусь в системе с 32 ГБ оперативной памяти, это должно быть возможно.

Я обнаружил, что установка ограничения на 1 МБ менее эффективно работает, это решение, которое работает для меня.

ini_set('memory_limit', '4095M'); // 4 GBs minus 1 MB

Edit Nov '16 : На самом деле, я никогда не играл с ним раньше, но заметил, что в моей системе это значение полностью снимает все ограничения памяти.Я могу использовать столько оперативной памяти, сколько возможно в моей системе.

6 голосов
/ 31 мая 2013

Как описано здесь: http://www.hardened -php.net / suhosin / configuration.html # suhosin.memory_limit

Suhosin не позволит вам установить значение больше, чем то, с которого скрипт начал .

Если вы установите suhosin.memory_limit на 2048M , тогда вы сможете увеличить использование памяти.

0 голосов
/ 09 мая 2013

У меня тоже была проблема с этой ошибкой, при импорте файла XLS в БД.

Решение было ini_set('memory_limit', '2048M');, примените эту команду непосредственно в файле, где есть проблема.

Например:Phpmyadmin\libraries\PHPExcel\PHPExcel\Worksheet.php

...