2012-12-30 15 views
7

Sembra che si stiano riscontrando problemi con le autorizzazioni di cache per l'hosting condiviso. In particolare, quando provo ad installare/fornitori di aggiornamento tramite Compositore, ottengo un'eccezione di runtime:Eccezione di runtime con l'installazione/aggiornamento di Composer su hosting condiviso con Symfony2

$ php composer.phar update -v -o 

Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception 

[RuntimeException] 
An error occurred when executing the "'cache:clear --no-warmup'" command. 

Exception trace: 
() at /home/thesewingdiva/private/vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Composer/ScriptHandler.php:137 
Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::executeCommand() at /home/thesewingdiva/private/vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Composer/ScriptHandler.php:48 
Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache() at phar:///home/thesewingdiva/private/composer.phar/src/Composer/Script/EventDispatcher.php:122 
Composer\Script\EventDispatcher->executeEventPhpScript() at phar:///home/thesewingdiva/private/composer.phar/src/Composer/Script/EventDispatcher.php:101 
Composer\Script\EventDispatcher->doDispatch() at phar:///home/thesewingdiva/private/composer.phar/src/Composer/Script/EventDispatcher.php:74 
Composer\Script\EventDispatcher->dispatchCommandEvent() at phar:///home/thesewingdiva/private/composer.phar/src/Composer/Installer.php:237 
Composer\Installer->run() at phar:///home/thesewingdiva/private/composer.phar/src/Composer/Command/UpdateCommand.php:82 
Composer\Command\UpdateCommand->execute() at phar:///home/thesewingdiva/private/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:238 
Symfony\Component\Console\Command\Command->run() at phar:///home/thesewingdiva/private/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:193 
Symfony\Component\Console\Application->doRun() at phar:///home/thesewingdiva/private/composer.phar/src/Composer/Console/Application.php:101 
Composer\Console\Application->doRun() at phar:///home/thesewingdiva/private/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:106 
Symfony\Component\Console\Application->run() at phar:///home/thesewingdiva/private/composer.phar/src/Composer/Console/Application.php:74 
Composer\Console\Application->run() at phar:///home/thesewingdiva/private/composer.phar/bin/composer:37 
require() at /home/thesewingdiva/private/composer.phar:15 

update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-custom-installers] [--no-scripts] [--no-progress] [-v|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN] 

non ho la possibilità di utilizzare ACL, e non ho la possibilità di utilizzare sudo dal momento che è hosting condiviso. La cache è impostata su 777 per le sue autorizzazioni (ricorsiva), e app/console, app.php e app_dev.php hanno tutte umask (0000). Ho anche cancellato il cache per vedere se sarebbe stato d'aiuto. Niente da fare. Qualche idea su come risolvere questo problema?

+2

Sei sicuro che si tratti di un problema di autorizzazione? Guardandosi intorno, diversi utenti di Symfony hanno segnalato una [correzione dell'impostazione del fuso orario] (http://stackoverflow.com/questions/13338803/symfony2-composer-install). –

+0

Cosa succede se si esegue 'cache: clear --no-warmup' direttamente? Con l'opzione '--verbose' dell'eseguibile della console? – greg0ire

+0

@JaredFarrish Il tuo suggerimento ha fatto il trucco! Grazie! Si prega di rendere il vostro commento una risposta in modo da poter invogliare e contrassegnarlo come risolto. –

risposta

4

In un commento sotto this question, si sottolinea che il problema ha a che fare con un'impostazione di fuso orario mancante.

Che cosa succede se si fa "app cache/console php: chiaro --verbose"

+0

Lo stesso problema con me, nessun fuso orario predefinito. Quando andavamo su web/config.php c'era un messaggio che diceva che qualcosa era obsoleto e che consigliava di eseguire di nuovo "aggiornamento del compositore". Una volta impostato il fuso orario predefinito, il comando è stato eseguito correttamente. – user276648

0

Per scoprire motivo esatto per eccezione, vedere i registri degli errori php. Tuttavia, come accennato da Jared Farrish, questo potrebbe essere dovuto a non impostare il fuso orario nelle impostazioni di php ini.

#/etc/php5/cli/php.ini 
date.timezone = 'Asia/Kolkata' 
log_errors = On 
error_log = /var/log/php/error.log 
2

Ho avuto questo stesso problema per un po 'e dopo ore di faccia al muro di mattoni martellante ho capito ... ho un .gitmodule nel mio progetto, e sulla verifica iniziale questi moduli non vengono inizializzate e come tale non sono disponibili per l'aggiornamento del compositore, il che comporta l'errore sopra riportato.

assicurarsi di eseguire il seguente

git submodule update --init src/Acme/Sadness/Bundle 

ovviamente sostituire src/Acme/Tristezza/Bundle con lo spazio dei nomi di progetto.

Spero che questo aiuti qualcuno a non passare attraverso lo stesso dolore che ho appena fatto.