Drush Allowed память объемом 2097152 байта исчерпана - PullRequest
2 голосов
/ 17 мая 2019

При попытке запустить Drush на веб-сервере Ubuntu 18.04 я вижу следующую ошибку:

PHP Fatal error:  Allowed memory size of 2097152 bytes exhausted (tried to allocate 12288 bytes) in /root/.composer/vendor/drush/drush/src/internal-forks/Config/Yaml/Parser.php on line 379

Я проверил, что файл php.ini загружается с помощью команды php --ini, которая даетмне вывод;

Configuration File (php.ini) Path: /etc/php/7.2/cli
Loaded Configuration File:         /etc/php/7.2/cli/php.ini
Scan for additional .ini files in: /etc/php/7.2/cli/conf.d
Additional .ini files parsed:      /etc/php/7.2/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.2/cli/conf.d/10-opcache.ini,
/etc/php/7.2/cli/conf.d/10-pdo.ini,
/etc/php/7.2/cli/conf.d/15-xml.ini,
/etc/php/7.2/cli/conf.d/20-apcu.ini,
/etc/php/7.2/cli/conf.d/20-apcu_bc.ini,
/etc/php/7.2/cli/conf.d/20-calendar.ini,
/etc/php/7.2/cli/conf.d/20-ctype.ini,
/etc/php/7.2/cli/conf.d/20-curl.ini,
/etc/php/7.2/cli/conf.d/20-dom.ini,
/etc/php/7.2/cli/conf.d/20-exif.ini,
/etc/php/7.2/cli/conf.d/20-fileinfo.ini,
/etc/php/7.2/cli/conf.d/20-ftp.ini,
/etc/php/7.2/cli/conf.d/20-gd.ini,
/etc/php/7.2/cli/conf.d/20-gettext.ini,
/etc/php/7.2/cli/conf.d/20-iconv.ini,
/etc/php/7.2/cli/conf.d/20-intl.ini,
/etc/php/7.2/cli/conf.d/20-json.ini,
/etc/php/7.2/cli/conf.d/20-ldap.ini,
/etc/php/7.2/cli/conf.d/20-mbstring.ini,
/etc/php/7.2/cli/conf.d/20-mysqli.ini,
/etc/php/7.2/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.2/cli/conf.d/20-phar.ini,
/etc/php/7.2/cli/conf.d/20-posix.ini,
/etc/php/7.2/cli/conf.d/20-readline.ini,
/etc/php/7.2/cli/conf.d/20-shmop.ini,
/etc/php/7.2/cli/conf.d/20-simplexml.ini,
/etc/php/7.2/cli/conf.d/20-sockets.ini,
/etc/php/7.2/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.2/cli/conf.d/20-sysvsem.ini,
/etc/php/7.2/cli/conf.d/20-sysvshm.ini,
/etc/php/7.2/cli/conf.d/20-tokenizer.ini,
/etc/php/7.2/cli/conf.d/20-wddx.ini,
/etc/php/7.2/cli/conf.d/20-xmlreader.ini,
/etc/php/7.2/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.2/cli/conf.d/20-xsl.ini,
/etc/php/7.2/cli/conf.d/20-zip.ini

Я отредактировал /etc/php/7.2/cli/php.ini и установил memory_limit = 1024MB, но проблема все еще существует.

Похоже, ограничение памяти все еще устанавливается на 2 МБ накомандная строка.Когда я проверяю веб-сайт, настроенный на вывод phpinfo(), я вижу, что memory_limit равен 1024 МБ.

Может кто-нибудь пролить свет на решение моей проблемы, пожалуйста?

1 Ответ

0 голосов
/ 18 мая 2019

На вашем компьютере может быть запущено несколько версий PHP, быстрая проверка: which -a php.

Чтобы увидеть, где находится исполняемый файл drush php и файл .ini, запустите drush status. Сначала убедитесь, что он основан на правильном исполняемом файле (кажется, что он либо полагается на неправильную версию PHP и / или конфигурацию, либо отредактированный файл .ini не является хорошим).

Возможно, у вас есть определенный конфиг drush в $HOME/.drush/ или /etc/drush, проверьте следующие строки:

 PHP executable         :  /path/to/php
 PHP configuration      :  /path/to/php.ini

Если вам нужно изменить путь к исполняемому файлу PHP, используйте DRUSH_PHP переменную среды:

Для запуска Drush с определенной версией php, а не php, определенный вашей оболочкой, вы можете добавить переменную окружения в ваш файл конфигурации оболочки называется .profile, .bash_profile, .bash_aliases или .bashrc, который находится в вашей домашней папке:

export DRUSH_PHP='/path/to/php'

Следующие переменные среды также управляют настройками, которые Drush будет использовать:

export PHP_INI='/path/to/php.ini'
export DRUSH_INI='/path/to/drush.ini'
export PHP_OPTIONS='-d memory_limit="2"' # you might have this overriding your base config !

См. Запуск специального php для Drush - это документация по drush 7.x, но она работает так же с drush 8.x (хотя и не тестировалась с drush 9.x).

...