2012-12-30 9 views
7

Ich habe Probleme mit Cache-Berechtigungen für Shared-Hosting. Genauer gesagt, wenn ich zu installieren versuchen/update-Anbieter über Komponist, erhalte ich eine Laufzeitausnahme:Laufzeit Ausnahme mit Composer Installation/Update auf Shared Hosting mit 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] 

ich ACL nicht die Fähigkeit haben, zu verwenden, und ich habe nicht die Fähigkeit, sudo zu verwenden, da es Shared Hosting. Der Cache ist für seine Berechtigungen auf 777 gesetzt (rekursiv), und app/console, app.php und app_dev.php haben alle umask (0000). Ich habe auch den Cache gelöscht, um zu sehen, ob das helfen würde. Kein Würfel. Irgendwelche Ideen, wie das zu beheben ist?

+2

Sind Sie sicher, dass es sich um ein Berechtigungsproblem handelt? Beim Umsehen haben mehrere Symfony-Benutzer eine [Zeitzoneneinstellung] gemeldet (http://stackoverflow.com/questions/13338803/symfony2-composer-install). –

+0

Was passiert, wenn Sie 'cache: clear --no-warmup' direkt ausführen? Mit der Option --verbose der ausführbaren Konsole? – greg0ire

+0

@JaredFarrish Ihr Vorschlag hat es geschafft! Vielen Dank! Bitte geben Sie Ihrem Kommentar eine Antwort, damit ich sie als gelöst markieren und markieren kann. –

Antwort

4

In einem Kommentar unter this question wird darauf hingewiesen, dass das Problem mit einer fehlenden Zeitzoneneinstellung zu tun hat.

Was passiert, wenn Sie das tun "php app/console cache: clear --verbose"

+0

Das gleiche Problem mit mir, keine Standardzeitzone. Wenn man zu web/config.php ging, gab es eine Nachricht, die sagte, dass etwas veraltet sei und riet, "Composer Update" erneut auszuführen. Nachdem die Standardzeitzone festgelegt wurde, wurde der Befehl erfolgreich ausgeführt. – user276648

0

Um genaue Grund für die Ausnahme finden Sie in den PHP-Fehlerprotokolle zu erfahren. Wie jedoch von Jared Farrish erwähnt, könnte dies daran liegen, dass in php ini Einstellungen die Zeitzone nicht eingestellt wurde.

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

ich das gleiche Problem für eine Weile hatte und nach Stunden Gesicht Mauer hämmern ich erkennen ... Ich habe ein .gitmodule in meinem Projekt, und bei dem ersten Kasse werden diese Submodule nicht initialisiert und als solche Es gibt keine Aktualisierung für Ihren Composer, was zu dem obigen Fehler führt.

Stellen Sie sicher, laufen die folgenden

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

natürlich src/Acme/Traurigkeit/Bundle mit Ihrem Projekt-Namensraum ersetzen.

Hoffe, das hilft jemandem nicht durch die gleichen Schmerzen gehen, die ich gerade getan habe.