PHP memory_limit заблокирован до 256 МБ?

Я пытаюсь установить memory_limit на 512M, но это locekd на 256M.

ini_set('memory_limit','512M');
ini_get('memory_limit'); //> Returns: 256M

У меня есть полный контроль над моим сервером. (это выделенный)

Обратите внимание, что все под 512M работает.

ini_set('memory_limit','16M');
ini_get('memory_limit'); //> Returns: 16M

Решение

Я узнал, почему. В php.ini я имел memory_limit = 256M. Возможно, это считается верхним пределом

6 ответов

3 возможных Я могу придумать /find:

До PHP 5.2.1, чтобы использовать эту директиву, это должно было быть включен во время компиляции с использованием --enable-memory-limit в настроить строку.

ИЛИ

Проблема, подробно описанная здесь: ini_set ( "memory_limit" ) в PHP 5.3.3 не работает вообще

ИЛИ

ini_set отключен


Вы также можете попытаться изменить memory_limit, используя файл php.ini или .htaccess

php.ini

memory_limit = 512M;

.htaccess

php_value memory_limit 512M


Я заметил, что на моем Mac (OS X El Capitan) и новом PHP 7.0.0 я не могу изменить memory_limit через php.ini

Но я могу изменить его через /etc/apache 2/httpd.conf, добавив строку в конец:

php_value memory_limit 1024M

и перезапуск сервера apache:

sudo apachectl restart

И это правильный php.ini, я могу изменить другие настройки через него.


Немного поздно, но редактирование файла php.ini не работает для php 7.1 с использованием Mac OS 10.11.6. Я все еще продолжал получать "PHP Fatal error: Allowed memory size of....", который по своему значению показал, что параметр памяти не обновлялся после запуска apache.

Итак, вместо редактирования файла.

/usr/local/php5/lib/php.ini

Я обнаружил, что изменение следующего файла исправило эту проблему.

/usr/local/php5/php.d/99-liip-developer.ini

Этот файл фактически заменял значения, установленные в исходном файле php.ini. Снова внесение следующих изменений в строку...

memory_limit = 256M

к

memory_limit = 1024M

И перезапуск apache.

sudo /usr/sbin/apachectl restart


Я узнал, почему. В php.ini я имел memory_limit = 256M. Возможно, это считается верхним пределом.

Я применил его к моей потребности.


Вы можете проверить свой конфигурационный файл php.ini в директиве под названием "disable_functions". Проверьте, отключена ли функция ini_set.

Также, если включен safe_mode, такая опция не может быть переопределена.

licensed under cc by-sa 3.0 with attribution.