【问题标题】:Symfony3 Export To ProductionSymfony3 导出到生产
【发布时间】:2016-07-19 07:58:51
【问题描述】:

我有一个在 apache2 上运行的服务器,带有一些虚拟主机,我想在其上部署一个 Symfony3 应用程序。但是,我无法将其正确部署到生产环境,它在开发环境中完美运行。每当我执行时

sudo composer install --no-dev --optimize-autoloader 

我得到错误:

PHP 致命错误:在第 25 行的 /my/path/app/AppKernel.php 中找不到类 'Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle' 脚本 Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 处理 post-install-cmd 事件并以异常终止

[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command: PHP Fatal error:  Class 'Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle'not found in /my/path/app/AppKernel.php on line 25.

收到此错误后,我再次阅读文档,它说我需要将此 Symfony 环境导出到生产环境。所以我这样做了:

export SYMFONY_ENV=prod

之后我再次执行composer install 命令,但结果相同。

Stackoverflow(和其他来源)上的一些人说我需要通过执行来清除缓存

sudo bin/console cache:clear --env=prod

所以我这样做了,但结果相同。有人知道吗?

尝试了其他解决方案: 实际上,只要我以这种方式执行命令,它就可以很好地工作:

sudo SYMFONY_ENV=prod composer install --no-dev --optimize-autoloader 

但是,只要一切都正确安装,我就去尝试访问该 URL,我得到了 500。所以我去 Apache2 日志检查是否有问题,我又看到了相同的 RuntimeException

编辑

所以我也遵循了link 的说明,但不幸的是,结果相同。我还检查了是否正确安装了所有东西,例如 ACL,并且确实安装了。

我也做了一个getfacl /my/path/var/cache,它根据link显示了正确的信息。

编辑#2

我也已经运行了php bin/symfony_requirements,它显示“我的系统已准备好运行 Symfony 项目”,即使在 php bin/console cache:clear --env=prod --no-debug 之后也是如此

【问题讨论】:

    标签: php apache2 symfony production-environment


    【解决方案1】:

    我不确定问题可能是什么,但由于这是一个新部署,请确保您已设置正确的安装要求。对于 apache,通常用户是 apache,组是 apache。

    在生产环境中,设置正确的所有者:组的简单方法是以下命令:

    $sudo chown -R apache:apache /var/www/html/test.karljohnchow.com/
    

    另外,这个链接: http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup

    介绍如何在 Linux(和 MacOS)上设置 ACL 权限,var 目录需要特殊权限。

    请务必检查这些内容,看看是否有帮助。

    编辑 #2。 我看到了你的评论。其中一个链接是针对 Symfony2 的,它很旧。我不建议使用旧的引用。他们可能指的是不同于 Symfony3 的 Symfony2。

    看看这个链接: http://symfony.com/doc/current/cookbook/deployment/tools.html

    您是否运行过php bin/symfony_requirements 命令?这很重要,这很重要。它会指出问题。 清除(和预热)缓存的命令是:

    $ php bin/console cache:clear --env=prod --no-debug
    

    这与您上面显示的不同。

    【讨论】:

    • 嘿!对于var/cachevar/logs,我也遵循了这些说明。但什么都没有:(有关更多信息,请参阅我编辑的问题。
    • 我编辑了我的帖子。看看 - 我希望它会有所帮助,否则我不确定。
    • 谢谢!我显然已经调整了命令以使其与 Symfony3 兼容。是的,我已经同时运行了两者。但不幸的是:(
    猜你喜欢
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多