Когда вы используете php -d memory_limit=-1
, вы устанавливаете запись ini
на лету, но только для скрипта, запускаемого с помощью этой команды.
Ваша идея запустить эту команду была близка к тому, что вы хотитедостижения:
php -d memory_limit=-1 composer update
Единственное, что вам нужно знать, это то, что composer
работает как команда, потому что она где-то стоит, и ваша ОС будет искать все исполняемые файлы (скорее всего /usr/bin/composer
, /usr/local/bin/composer
или что-то подобное, это обычно упоминается как PATH
).Но когда вы пытаетесь запустить php composer
, тогда composer просто рассматривается как обычный файл, и ваша ОС больше не пытается искать путь к вашему исполняемому файлу.
Что вы можете сделать, так это использовать командуwhich
, который вернет вам путь к этому composer
исполняемому файлу.
$ php $(which composer) -V
Composer version 1.8.6 2019-06-11 15:03:05
Таким образом, вы сможете достичь того, что вы хотите сделать, с помощью
php -d memory_limit=-1 $(which composer) install
для установки пакетов;и
php -d memory_limit=-1 $(which composer) update
для обновлений.
Обратите также внимание на то, что : в документации композитора есть полная статья об ограничении памяти: https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors
Это может облегчить вашу работу, изменив соответствующую настройку PHP CLI
, или может указать на использование
COMPOSER_MEMORY_LIMIT=-1 composer install
и
COMPOSER_MEMORY_LIMIT=-1 composer update