为什么composer php在300秒后安装超时?

当我尝试在我的服务器上构build它时,我在symfony2中创build了一个小项目,解压symfony时总是失败。 build立好,突然composer php不会解压symfony,我什么也没有改变。 我试图build立与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. 

尝试composer update/install -o -vvv并检查包是从composer php的caching加载。

如果是,请尝试清除作曲者的caching或尝试添加-cache-dir=/dev/null

要强制下载档案而不是克隆源,请将--prefer-dist选项与--no-dev结合使用。

否则,你可以尝试提高composer php的过程超时值:

 export COMPOSER_PROCESS_TIMEOUT=600 ( defaults to 300 ) 

composer php本身对允许远程git操作的时间有限制。 查看Composer文档可以确认,环境variablesCOMPOSER_PROCESS_TIMEOUT控制着这一点。 该variables设置为默认值300(秒),这显然不足以使用较慢的Internet连接进行大型克隆操作。

使用以下方法提高此值:

 COMPOSER_PROCESS_TIMEOUT=2000 composer install 
 composer config --global process-timeout 2000 

删除composer phpcaching为我工作。

 rm -rf ~/.composer/cache/* 

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(); 

这是NFS的问题。 编写器将caching写入NFS目录。 您必须全局安装composer并重写cachingpath。

这不工作:

 php composer.phar install 

使用这个:

 composer install 

在运行之前,您必须全局configurationcomposer php。 看到这个https://getcomposer.org/doc/00-intro.md#globally

另外,你必须添加这行到你的config.json中:

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

为我工作。