Скорее всего, у вас есть несколько файлов php.ini (отметьте что-то подобное /etc/php5/cli
), и вы редактируете неправильный файл, или у вас есть ini_set('memory_limit', '512M');
параметр в settings.php
файле или тому подобное, который включается.
PHP CLI не соблюдает ограничение памяти в php.ini
Я использую drush, приложение php для командной строки, для управления веб-сайтом drupal. Я запускаю команду для импорта большого количества данных, что приводит к тому, что я превышаю ограничение памяти php.
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted ...
Что составляет 512 МБ, если я правильно делаю математику (536870912/1024/1024 = 512). Я изменил директиву в php.ini, которую использует drush:
$> drush status ... PHP configuration : /etc/php5/cli/php.ini $> grep memory /etc/php5/cli/php.ini ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 1024M
Но я все еще бью предел в 512 МБ! Я работаю на виртуальной машине, чьи настройки памяти я изменил с 512 до 1025 МБ ОЗУ, чтобы можно было запускать drush.
$> free -m total used free shared buffers cached Mem: 1010 578 431 0 14 392 -/+ buffers/cache: 172 837 Swap: 382 0 382
Таким образом, он говорит, что у него есть около 431 МБ свободного места, теперь, когда я увеличил виртуальную машину до 1024. Я думаю, половина памяти используется для запуска графического интерфейса, но я не понимаю, как нормально работал графический интерфейс, когда виртуальная машина было 512 МБ оперативной памяти.
Почему PHP Cli все еще превышает ограничение памяти в 512 МБ? Если оно достигло предела системной памяти, не должно ли оно умереть около 431 МБ, что, по free
словам команды, доступно?
3 ответа на вопрос
Для других людей, которые задают этот вопрос, например, я, выполните следующую команду:
php --ini
Чтобы увидеть, какую конфигурацию использует php-cli. Вы увидите что-то вроде этого:
Loaded Configuration File: /etc/php/7.1/cli/php.ini
Или вот так:
Loaded Configuration File: /opt/php-7.0.26/etc/php.ini
Возможно, вы пытаетесь изменить конфигурацию в неправильном файле.
in Mac for instance
/etc/php5/cli is for command line, so you need to change /etc/php5/cgi/php.ini
that should work !
Похожие вопросы
-
6
Нужно ли иметь 3 модуля памяти DIMM для использования DDR3 или даже иметь возможность запуска 3-кана...
-
5
Почему фанат моего процессора гонит видео или виртуальные машины?
-
4
Есть ли определенное или ощутимое преимущество использования ECC RAM на настольном ПК?
-
-
2
Использование памяти iTunes
-
5
Как определить, какие надстройки Firefox используют больше всего памяти
-
5
Что мне делать со своей старой памятью?
-
3
Как определить, можно ли увеличить объем оперативной памяти с 2 до 4 ГБ на материнской плате ASUS P5...
-
6
Почему оперативная память для новых macbooks такая дорогая?
-
8
«Установить память попарно» Как это работает для 3 ГБ?
-
7
Куда делись остальные 0,8 ГБ ОЗУ?