81

I have small project made in symfony2 when I try to build it on my server it's always fails when unzipping symfony. Build was OK and suddenly composer won't unzip symfony and I didn't change anything. I tried to build with Jenkins and also manually from bash with same result. It's not permissions problem and also internet connection on my server is OK.

Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
 - Installing symfony/symfony (v2.3.4)
 Downloading: 100%
[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process "unzip '/path/vendor/symfony/symfony/6116f6f3
d4125a757858954cb107e64b' -d 'vendor/composer/b2f33269' && chmod -R u+w 'vendor/composer/b2f33269'" exceeded the timeout of 300 seconds.
4

10 回答 10

123

尝试composer update/install -o -vvv检查包是否从作曲家的缓存中加载。

如果是,请尝试清除作曲家的缓存或尝试添加-cache-dir=/dev/null.

要强制下载存档而不是克隆源,请将该--prefer-dist选项与--no-dev.

否则,您可以尝试提高作曲家的进程超时值:

export COMPOSER_PROCESS_TIMEOUT=600   ( defaults to 300 )
于 2013-09-20T13:22:07.057 回答
63
composer config --global process-timeout 2000
于 2016-08-10T10:24:03.440 回答
60

最简单的方法是在 composer.json 文件中添加配置选项,添加 process-timeout 0,仅此而已。它可以在任何地方工作。

{
  .....
  "scripts": {
    "start": "php -S 0.0.0.0:8080 -t public public/index.php"
  },
  "config": {
    "process-timeout":0
  }
}
于 2018-03-15T16:47:11.897 回答
28

Composer 本身对允许远程 git 操作的时间有限制。查看Composer 文档可以确认环境变量 COMPOSER_PROCESS_TIMEOUT 控制着这一点。该变量设置为默认值 300(秒),这对于使用慢速 Internet 连接的大型克隆操作显然是不够的。

使用以下方法提高此值:

COMPOSER_PROCESS_TIMEOUT=2000 composer install
于 2014-08-16T19:29:21.547 回答
5

删除作曲家缓存对我有用。

rm -rf ~/.composer/cache/*
于 2014-02-04T21:24:19.043 回答
5

这是一个旧线程,但我发现超时的原因是运行 php 调试器(PHPStorm 正在侦听 xdebug 连接)导致进程超时。当我关闭 PHPStorm 或禁用 xdebug 扩展时,没有发生超时。

于 2018-06-28T06:46:25.183 回答
4

Symfony 组件的进程超时默认设置为 60。这就是为什么你会得到这样的错误:

[Symfony\Component\Process\Exception\ProcessTimedOutException]     
The process "composer update" exceeded the timeout of 60 seconds. 

解决方案

将超时设置为 5 分钟或更长时间

$process = new Process("composer update");
$process->setTimeout(300); // 5 minutes
$process->run();
于 2016-11-30T19:53:16.973 回答
3

旧线程但对我来说是新问题。尝试在 Windows 10 主机内的 Ubuntu VM 上安装 google/apiclient(在 google/apiclient-services 上失败)时,此处没有解决方案。

在注意到 Windows 的“反恶意软件可执行文件”在执行此作曲家安装/更新时占用了相当多的 CPU 周期后,我在 Windows 10 机器上禁用了“实时保护”,我的作曲家更新/安装工作!

希望对某人有所帮助。

于 2019-01-10T21:26:21.610 回答
0

我同意上面建议的大部分内容,但我遇到了同样的问题,对我有用的是删除供应商文件夹并重新运行composer install

问候

于 2021-05-01T10:44:52.527 回答
-1

这就是 NFS 慢的问题。Composer 将缓存写入 NFS 目录。您必须全局安装 composer 并重写缓存路径。

这不起作用:

php composer.phar install

使用这个:

composer install

在此运行之前,您必须全局配置作曲家。请参阅此https://getcomposer.org/doc/00-intro.md#globally

此外,您必须将此行添加到您的 config.json:

"config": {
    "cache-dir": "/var/cache/composer"
}

为我工作。

于 2015-11-06T04:03:07.363 回答