web-dev-qa-db-ja.com

なぜcomposer= 300秒後にタイムアウトをインストールしますか?

Symfony2で作成した小さなプロジェクトをサーバー上でビルドしようとすると、symfonyを解凍すると常に失敗します。ビルドは正常で、突然composerは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.
53
zajca

試してくださいcomposer update/install -o -vvvそして、パッケージが作曲家のキャッシュからロードされているかどうかを確認します。

はいの場合は、作曲家のキャッシュをクリアするか、-cache-dir=/dev/null

ソースのクローンを作成する代わりにアーカイブを強制的にダウンロードするには、--prefer-distオプションと--no-dev

それ以外の場合は、コンポーザのプロセスタイムアウト値を上げてみてください。

export COMPOSER_PROCESS_TIMEOUT=600   ( defaults to 300 )
88
composer config --global process-timeout 2000
32
Ali Motameni

Composer自体は、リモートgit操作を許可する期間に制限を課します。 Composer documentation を見ると、環境変数COMPOSER_PROCESS_TIMEOUTがこれを管理していることが確認されます。変数はデフォルト値300(秒)に設定されますが、これは低速のインターネット接続を使用した大規模なクローン操作には明らかに不十分です。

以下を使用してこの値を上げます。

COMPOSER_PROCESS_TIMEOUT=2000 composer install
22
Tahir Yasin

最も簡単な方法は、composer.jsonファイルに構成オプションを追加し、process-timeout 0を追加するだけです。どこでも動作します。

{
  .....
  "scripts": {
    "start": "php -S 0.0.0.0:8080 -t public public/index.php"
  },
  "config": {
    "process-timeout":0
  }
}
21
riguang zheng

composer=キャッシュは私のために働いた。

rm -rf ~/.composer/cache/*
4
wormhit

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();
4
Mahmoud Zalt

これは古いスレッドですが、タイムアウトの原因がphpデバッガーの実行(PHPStormがxdebug接続をリッスンしている)であることがわかりました。これがプロセスのタイムアウトを引き起こしました。 PHPStormを閉じたとき、またはxdebug拡張機能を無効にしたとき、タイムアウトは発生しませんでした。

3
Hadu

古いスレッドですが、私にとっては新しい問題です。 Windows 10ホスト内のUbuntu VMにgoogle/apiclientをインストールしようとすると(google/apiclient-servicesで失敗しました)、ここで解決策は機能しませんでした。

このcomposer install/updateを実行すると、Windowsの「マルウェア対策実行可能ファイル」がかなりのCPUサイクルを消費することに気付いた後、Windows 10マシンで「リアルタイム保護」を無効にし、composer update/installは機能しました!!

それが誰かを助けることを願っています。

1
Daydream Nation

これがNFSの低速化の問題です。 Composer= NFSディレクトリへのキャッシュの書き込み。composer=グローバルにインストールし、キャッシュパスを書き換える必要があります。

これは機能しません:

php composer.phar install

これを使用して:

composer install

この実行の前に、config composer globally。これを参照してください。 https://getcomposer.org/doc/00-intro.md#globally

また、config.jsonに次の行を追加する必要があります。

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

私のために働く。

0
user3890355