【发布时间】: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