4
  • 安装 symfony/symfony (v2.8.3) 下载:85%PHP 致命错误:在 phar:///home/travis/.phpenv/versions/5.4.37/ 中允许的内存大小为 1073741824 字节已用尽(试图分配 6553600 字节) bin/composer/src/Composer/Util/RemoteFilesystem.php 第 174 行致命错误:phar:///home/travis/.phpenv/versions/5.4 中允许的内存大小为 1073741824 字节已用尽(尝试分配 6553600 字节)。 37/bin/composer/src/Composer/Util/RemoteFilesystem.php 第 174 行

自从我们从 Symfony 2.8.2 -> 2.8.3 更新时出现此错误(内存不足),几乎我的项目的每个构建都失败了。如果我强制重建足够多次,它最终会通过,所以这显然不是项目的问题,而是 travis 或 composer 或组合(或 Symfony,我想)。只有在尝试加载 Symfony 时才会失败。看起来这个问题会很普遍,但我在 GH 找不到任何关于 SO 或问题的信息。

有人对如何纠正问题有任何建议吗?

从失败的构建记录

作曲家.json 文件

.travis.yml 文件

4

2 回答 2

6

相反,composer update您应该在 CI 服务器上调用composer install -o(使用优化的 autloader)。

运行 composer install 将:

  • 检查 composer.lock 文件是否存在
  • 如果没有,请执行 composer update 以创建 composer.lock
  • 如果 composer.lock 存在,从锁文件安装指定的版本

运行 composer update 将:

  • 检查 composer.json
  • 根据您的版本规格确定要安装的最新版本- 耗时和耗内存的任务
  • 安装最新版本
  • 更新 composer.lock 以反映安装的最新版本

使用composer.lock文件中的依赖版本将使您确信您的测试是在与开发时完全相同的依赖项上执行的。即使在您composer.json使用的dev-master版本中。

如果由于某些原因您想composer update在 travis 上运行,那么xdebug在 composer install 之前禁用(如果需要在您的测试之后启用它)可以提高composer性能。xdebug在 travis 上默认启用。

在加载 php 扩展“xdebug”时运行 Composer 控制台命令会大大降低速度。即使根据 php.ini 标志禁用所有“xdebug”相关功能,但 php 扩展本身已加载到 PHP 引擎中,情况也是如此。与启用“xdebug”的 cli 命令相比,速度提高高达 3 倍的情况并不少见。

https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer

于 2016-03-12T13:10:31.950 回答
1

我遇到了同样的问题,我使用的解决方法是在中添加以下内容 before_install

echo "memory_limit=520M" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini

来自特拉维斯的这个问题。在免费计划中,travis 提供 3GB 内存和最多 2 个可用内核

于 2016-03-12T13:08:28.120 回答