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 Мб бесплатно, теперь, когда я наткнулся vm до 1024. Я предполагаю, что половина памяти используется для запуска GUI, но я не понимаю, как GUI работал хорошо, когда у vm было 512 МБ оперативной памяти.

Почему php cli все еще достигает предела памяти 512 МБ? Если бы он достиг предела системной памяти, не должен ли он умереть около 431 МБ, что и является free команда говорит доступно?

12
задан James T Snell
31.01.2023 0:08 Количество просмотров материала 3112
Распечатать страницу

3 ответа

скорее всего, у вас более одного php.ini-файл (проверьте что-то вроде /etc/php5/cli) и редактируете неправильный или у вас есть ini_set('memory_limit', '512M'); настройка в settings.php файл или тому подобное.

5
отвечен David Schwartz 2023-02-01 07:56

для других людей, которые google этот вопрос, как я-выполните следующую команду:

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

возможно, вы пытаетесь изменить настройки в неправильном файле.

1
отвечен A.Maksymiuk 2023-02-01 10:13

в Mac, например,

/ etc / php5 / cli для командной строки, поэтому вам нужно изменить /etc/php5/cgi/php.ini

Это должно сработать !

0
отвечен espaciomore 2023-02-01 12:30

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх