Pdi*_*ity 6 out-of-memory composer-php centos7
运行时我和其他人有同样的错误php ~/composer.phar update:
The following exception is caused by a lack of memory and not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details
Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:974
Stack trace:
0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///home/te...', 974, Array)
1 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(974): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
2 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(784): Symfony\Component\Console\Application->getSttyColumns()
3 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(745): Symfony\Component\Console\Application->getTerminalDimensions()
4 phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(675): Symfony\Component\Console\Application->getTerminalWidth()
5 phar:///home/tea/composer in phar:///home/tea/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php on line 974
Run Code Online (Sandbox Code Playgroud)
...但是有一个很大的实例:4GB RAM和4GB交换。可用的RAM永远不会用完,更不用说可用/缓存的RAM了,交换也没有被触及!
total used free shared buff/cache available
Mem: 3788 885 1908 9 993 2692
Swap: 3967 0 3967
Run Code Online (Sandbox Code Playgroud)
这是这台新机器CentOS / CloudLinux 7.1(带有cPanel)上第一次运行composer更新。
无奈之下,我已经尝试过,
# php -dmemory_limit=1G ../composer.phar update --no-scripts --prefer-dist
并且尝试过删除composer.lock和供应商文件,甚至尝试添加一个临时交换文件,但实际上这似乎不是内存问题 -错误会被误导吗?
proc_open没有被禁用,我也尝试了禁用shell fork炸弹保护,但是没有jive。
会很喜欢的。
注意:我知道提交composer.lock文件并进行composer安装的建议,但是此实例正用于开发(就像以前具有较小资源规格的CentOS / CloudLinux 6.x机器一样),因此我们需要使用我们以前使用的相同方法。
好的,所以 CloudLinux 将用户的内存限制为 1024mb,因为当限制增加一倍到 2048mb 时它可以工作。
这与我们之前的服务器 (CentOS/CloudLinux 6.x) 上的设置相同,但看起来每个版本的 CentOS 都比其他版本更需要内存。
奇怪的是,使用 --profile 运行 composer 显示它使用的最多是 482mb。即使分叉时它翻倍(正如所建议的那样),它仍然低于 1024mb 限制。
| 归档时间: |
|
| 查看次数: |
6237 次 |
| 最近记录: |