4

Я использую 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 ответа3

5

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

1

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

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

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

0

в Mac например

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

это должно работать!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .