我正在使用Symfony 4 ...
我运行以下命令:
php -d memory_limit=-1 composer.phar require form
脚本通过这些要点成功运行...
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package symfony/lts is abandoned, you should avoid using it. Use symfony/flex instead.
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 255
!!
!! // Clearing the cache for the dev environment with debug
!! // true
然后我收到此错误:
!! Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /Applications/XAMPP/xamppfiles/htdocs/xxxx/vendor/symfony/var-dumper/Cloner/Data.php on line 306
我可以毫无问题地运行此脚本:
php -d memory_limit=-1 bin/console cache:clear
我不知道该如何解决,因为我的命令说要绕过内存限制。为了解决这个错误,我该怎么办,我现在无法安装任何东西。
答案 0 :(得分:2)
为整个php进程设置内存限制可能很危险,因为这可能导致在Web上下文中执行PHP时出现内存问题。因此,请确保仅更新CLI的配置。 Composer还通过环境变量COMPOSER_MEMORY_LIMIT
提供了一个配置点。如果您始终希望启用它,则可以通过export COMPOSER_MEMORY_LIMIT=-1
将其添加到您的.bashrc中;如果只需要一次,则可以在命令本身前面添加它在安装过程中:
COMPOSER_MEMORY_LIMIT=-1 composer require form
您也可以在Composer的Troubleshooting Guide中找到各种不同的方法来解决与内存限制有关的问题。
答案 1 :(得分:1)
Composer执行脚本时,它是Composer的单独 PHP调用,因此您的命令行指令不适用于它。
典型的解决方案是通过PHP的配置文件配置PHP,以便所有实例都受影响。
如果您无权更改PHP配置,最好的选择可能是使用--no-scripts
运行composer,然后尝试使用内存限制选项分别运行必要的脚本。