- 安装 symfony/symfony (v2.8.3) 下载:85%PHP 致命错误:第 174 行的 phar:///home/travis/.phpenv/versions/5.4.37/bin/composer/src/Composer/Util/RemoteFilesystem.php 中允许的 1073741824 字节的内存大小耗尽(尝试分配 6553600 字节) 致命错误:第 174 行的 phar:///home/travis/.phpenv/versions/5.4.37/bin/composer/src/Composer/Util/RemoteFilesystem.php 中允许的 1073741824 字节的内存大小耗尽(尝试分配 6553600 字节)
自从我们从Symfony 2.8.2 -> 2.8.3更新以来,我的项目的几乎每个构建都失败了,并且出现了此错误(内存不足)。如果我强制重建的次数足够多,它最终会通过,所以这显然不是项目的问题,而是特拉维斯或作曲家或组合(或Symfony,我想)的问题。它仅在尝试加载Symfony时失败。似乎这个问题会很普遍,但我在 SO 或 GH 上找不到任何问题。
有人对如何纠正问题有任何建议吗?
来自失败构建的日志
作曲家.json 文件
.travis.yml 文件
而不是composer update
您应该在 CI 服务器上调用 composer install -o
(使用优化的自动加载器)。
运行作曲家安装将:
- 检查 composer.lock 文件是否存在
- 如果没有,请执行作曲家更新以创建作曲家.lock
- 如果 composer.lock 存在,请从锁定文件中安装指定的版本
运行作曲家更新将:
- 检查作曲家.json
- 根据您的版本规格确定要安装的最新版本 - 耗时和内存消耗的任务
- 安装最新版本
- 更新 composer.lock 以反映已安装的最新版本
使用文件中的依赖项版本composer.lock
让您确信您的测试是在与开发完全相同的依赖项上执行的。即使在您的composer.json
您使用dev-master
版本。
如果出于某些原因您想在 travis 上运行composer update
,那么在 composer 安装之前禁用xdebug
(如果您的测试需要,请在之后启用它)可以提高composer
性能。 默认情况下,xdebug
在 travis 上处于启用状态。
运行 Composer 控制台命令,而 php 扩展名 "xdebug" 是 加载会大大降低速度。甚至当所有 "xDebug"相关功能按 php.ini 标志被禁用,但 php 扩展本身被加载到 PHP 引擎中。与 CLI 相比 使用"xDebug"运行命令使速度提高了几倍 最多 3 个并不少见。
https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer
我遇到了同样的问题,我使用的解决方法是在before_install
中添加以下内容:
echo "memory_limit=520M" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
来自特拉维斯的这个问题。在免费计划中,travis提供3GB内存和最多2个内核可用