当我尝试在我的服务器上构建它时,我在symfony2中创建了一个小项目,在解压缩symfony时总是失败。构建是好的,突然作曲家不会解压缩symfony,我没有改变任何东西。我尝试使用Jenkins构建,也尝试使用bash手动构建相同的结果。这不是权限问题,我服务器上的互联网连接也没问题。
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.
答案 0 :(得分:83)
尝试composer update/install -o -vvv
并检查是否正在从编辑器的缓存加载包。
如果是,请尝试清除作曲家的缓存或尝试添加-cache-dir=/dev/null
。
要强制下载存档而不是克隆来源,请将--prefer-dist
选项与--no-dev
结合使用。
否则你可以尝试提高作曲家的进程超时值:
export COMPOSER_PROCESS_TIMEOUT=600 ( defaults to 300 )
答案 1 :(得分:31)
composer config --global process-timeout 2000
答案 2 :(得分:22)
Composer本身限制了允许远程git操作的时间。查看Composer documentation确认环境变量COMPOSER_PROCESS_TIMEOUT对此进行了管理。该变量设置为默认值300(秒),对于使用慢速Internet连接的大型克隆操作来说,这显然是不够的。
使用以下方法提高此值:
COMPOSER_PROCESS_TIMEOUT=2000 composer install
答案 3 :(得分:16)
最简单的方法是在composer.json文件中添加配置选项,添加进程超时0,这就是全部。它适用于任何地方。
{
.....
"scripts": {
"start": "php -S 0.0.0.0:8080 -t public public/index.php"
},
"config": {
"process-timeout":0
}
}
答案 4 :(得分:4)
删除编辑器缓存对我有用。
rm -rf ~/.composer/cache/*
答案 5 :(得分: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();
答案 6 :(得分:3)
这是一个旧线程,但是我发现超时的原因是运行php调试器(PHPStorm正在侦听xdebug连接),这导致进程超时。当我关闭PHPStorm或禁用xdebug扩展名时,没有发生超时。
答案 7 :(得分:1)
旧线程对我来说是新问题。尝试在Windows 10主机内的Ubuntu VM上安装google / apiclient(在google / apiclient-services上失败)时,这里没有解决方案。
在执行此Composer安装/更新时,注意到Windows的“抗恶意软件可执行文件”占用了大量CPU周期后,我在Windows 10计算机上禁用了“实时保护”,并且我的Composer更新/安装正常工作!
希望能帮助某人。
答案 8 :(得分:0)
这是NFS的问题。 Composer将缓存写入NFS目录。您必须全局安装composer并重写缓存路径。
这不起作用:
php composer.phar install
使用此:
composer install
在此之前,您必须全局配置composer。见https://getcomposer.org/doc/00-intro.md#globally
此外,您必须将此行添加到config.json:
"config": {
"cache-dir": "/var/cache/composer"
}
适合我。
答案 9 :(得分:0)
我同意上面建议的大部分内容,但我遇到了同样的问题,对我有用的是删除供应商文件夹并重新运行 composer install
问候