【问题标题】:Runtime exception with Composer install/update on shared hosting w/ Symfony2在使用 Symfony2 的共享主机上安装/更新 Composer 时出现运行时异常
【发布时间】:2012-12-15 01:45:59
【问题描述】:

我似乎在共享主机的缓存权限方面遇到了一些问题。具体来说,当我尝试通过 Composer 安装/更新供应商时,我得到一个运行时异常:

$ 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]

我没有使用 ACL 的能力,也没有使用 sudo 的能力,因为它是共享主机。缓存因其权限(递归)而设置为 777,并且 app/console、app.php 和 app_dev.php 都具有 umask(0000)。我还删除了缓存,看看是否有帮助。没有骰子。有关如何解决此问题的任何想法?

【问题讨论】:

  • 您确定这是权限问题吗?环顾四周,几个 Symfony 用户报告了 timezone setting fix
  • 如果你直接运行cache:clear --no-warmup会发生什么?使用控制台可执行文件的--verbose 选项?
  • @JaredFarrish 你的建议成功了!谢谢!请将您的评论作为答案,以便我投票并将其标记为已解决。

标签: php symfony shared-hosting composer-php


【解决方案1】:

this question 下的评论中指出,该问题与缺少时区设置有关。

如果你执行“php app/console cache:clear --verbose”会发生什么

【讨论】:

  • 我也有同样的问题,没有默认时区。当转到 web/config.php 时,有一条消息说某些内容已过时,并建议再次运行“composer update”。设置默认时区后,命令运行成功。
【解决方案2】:

要找出异常的确切原因,请参阅 php 错误日志。 但是,正如 Jared Farrish 所提到的,这可能是由于未在 php ini 设置中设置时区。

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

【讨论】:

    【解决方案3】:

    我有一段时间遇到同样的问题,经过数小时的砖墙撞击后,我意识到......我的项目中有一个 .gitmodule,在初始结帐时,这些子模块没有初始化,因此不存在您的作曲家要更新,这会导致上述错误。

    确保运行以下命令

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

    当然用您的项目命名空间替换 src/Acme/Sadness/Bundle

    希望这可以帮助人们不再经历我刚才的痛苦。

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 2011-09-04
      相关资源
      最近更新 更多