Я запускаю Symfony 3.4 LTS с композитором. Мой веб-сайт работает нормально, но когда я пытаюсь обновить любой пакет с помощью:
php composer.phar update
# or
php composer.phar update symfony/symfony
# or
php composer.phar update swiftmailer/swiftmailer
Я получаю такую ошибку:
PHP Fatal error: Out of memory [...] in phar:/// [...]
Ниже то, что я уже тестировал:
memory_limit с 196M до 1024Mphp -d memory_limit = -1.. безуспешно. Что еще я мог попробовать?
Кстати, если я запустил free -m:
total used free shared buffers cached
Mem: 2002 361 1641 0 7 82
-/+ buffers/cache: 270 1732
Swap: 255 255 0
Что говорят ваши журналы Symfony? Их журнал, вероятно, находится где-то вроде /var/www/your_project/var/logs/prod.log или чего-то подобного.
Он не генерирует никаких журналов. Если я добавлю опцию '-verbose', я получу proc_open (): fork failed Errors
Я не могу установить более 1 Гб в параметре memory_limit (ограничение хостинг-провайдера)
Это хорошо известная проблема композитора, stackoverflow полон этого ... больше памяти кажется единственным реальным способом для первой установки. Разрешение зависимостей пожирает оперативную память. Я не могу вам помочь, потому что ваша оперативная память ограничена вашим хост-провайдером. Я бы сначала проверил, присутствует ли проблема на моем локальном (> 1 ГБ ОЗУ) компьютере с меньшим объемом памяти и увеличивая память шаг за шагом, чтобы выяснить, действительно ли память является ограничивающей частью, и когда да, то какое значение следует использовать. .. я почти уверен, что если объем памяти превышает 4 ГБ и сообщение такое же, должна быть другая проблема ...
Установите / обновите на машине разработчика, переместите сгенерированный файл composer.lock на машину с низким объемом памяти, а затем запустите "composer install". У меня есть машина размером 0,5 ГБ, и это обычно работает для меня. Иногда мне также нужно перезагрузиться, чтобы иметь как можно больше памяти. Кроме того, вам не следует делать обновления в производственной среде, поскольку вы никогда не знаете, что именно вы получите.
Хорошо, я собираюсь скопировать свой сайт на локальную тестовую машину. Для справки, это минимальный новый веб-сайт Symfony, содержащий всего 12 необходимых пакетов! Если 1G аппаратной памяти недостаточно для запуска Composer ... какой тупой инструмент!
1 ГБ оперативной памяти достаточно для запуска композитора, но этого недостаточно для разрешения множества зависимостей. Если вы думаете, что это глупо, пожалуйста, сделайте нам одолжение и внедрите разумную альтернативу, которая использует меньше оперативной памяти.
Запустите обновление композитора на своем локальном компьютере. В первую очередь вам следует избегать использования обновления композитора на сервере; вместо этого используйте установку композитора.
Возможный дубликат установка композитора продолжает использовать всю оперативную память




Я решил свою проблему.
composer updateЯ очень не понимаю композитора и его требований. Это безумие...
php -d memory_limit=-1 `which composer` update
Обновите композитор до последней версии с помощью этой команды,
composer selfupdate, а затем запустите команду require
как указано в этом ответе, https://github.com/composer/composer/issues/2704#issuecomment-56169024,
это сработало для меня.
используйте symfony / flex, он включает оптимизацию, которая должна значительно снизить требования к памяти Composer
была такая же проблема на моем живом сервере.
rm -R vendor/
composer install
отлично работает, когда composer.json обновлен.
Возможный дубликат stackoverflow.com/questions/51261141/…