Domanda Perché il compositore installa i timeout dopo 300 secondi?


Ho un piccolo progetto fatto in symfony2 quando provo a crearlo sul mio server e fallisce sempre quando si decomprime symfony. La build è stata OK e improvvisamente il compositore non decomprimerà symfony e non ho cambiato nulla. Ho provato a costruire con Jenkins e anche manualmente da bash con lo stesso risultato. Non è un problema di autorizzazioni e anche la connessione Internet sul mio server è 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.

38
2017-09-20 13:15


origine


risposte:


provare composer update/install -o -vvv e controlla se il pacchetto è stato caricato dalla cache del compositore.

se sì prova a cancellare la cache del compositore o prova ad aggiungere -cache-dir=/dev/null.

Per forzare il download di un archivio invece delle fonti di clonazione, utilizzare il comando --prefer-dist opzione in combinazione con --no-dev.

Altrimenti potresti provare ad aumentare il valore di timeout del processo del compositore:

export COMPOSER_PROCESS_TIMEOUT=600   ( defaults to 300 )

68
2017-09-20 13:22



Il compositore stesso impone un limite a quanto tempo consentirebbe l'operazione git remota. Uno sguardo al Documentazione del compositore conferma che la variabile d'ambiente COMPOSER_PROCESS_TIMEOUT lo governa. La variabile è impostata su un valore predefinito di 300 (secondi) che apparentemente non è sufficiente per una grande operazione di clonazione utilizzando una connessione internet lenta.

Aumenta questo valore usando:

COMPOSER_PROCESS_TIMEOUT=2000 composer install

21
2017-08-16 19:29



composer config --global process-timeout 2000

21
2017-08-10 10:24



L'eliminazione della cache del compositore ha funzionato per me.

rm -rf ~/.composer/cache/*

4
2018-02-04 21:24



Il componente Symfony ha il timeout del processo impostato su 60 per impostazione predefinita. Ecco perché ottieni errori come questo:

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

Soluzione

Impostare il timeout su 5 minuti o più

$process = new Process("composer update");
$process->setTimeout(300); // 5 minutes
$process->run();

2
2017-11-30 19:53



Il metodo più semplice è aggiungere l'opzione config al file composer.json, aggiungere process-timeout 0, tutto qui. Funziona ovunque.

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

2
2018-03-15 16:47



È un thread vecchio, ma ho scoperto che il motivo per cui il timeout era eseguire un debugger php (PHPStorm stava ascoltando le connessioni xdebug) che ha causato il timeout del processo. Quando ho chiuso il PHPStorm o disabilitato l'estensione xdebug, non si è verificato alcun timeout.


1
2018-06-28 06:46



Questo è il problema NFS lento. Compositore scrive la cache nella directory NFS. È necessario installare compositore a livello globale e riscrivere il percorso della cache.

Questo non funziona:

php composer.phar install

Usando questo:

composer install

Prima di questa esecuzione è necessario configurare il compositore a livello globale. Guarda questo https://getcomposer.org/doc/00-intro.md#globally

Inoltre, è necessario aggiungere queste righe a config.json:

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

Per me va bene.


0
2017-11-06 04:03