Symfony3出口到生产

时间:2016-07-19 07:58:52

标签: php apache2 symfony production-environment

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

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

我收到错误:     PHP致命错误:Class' Sensio \ Bundle \ GeneratorBundle \ SensioGeneratorBundle'在第25行的/my/path/app/AppKernel.php中找不到 脚本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,它向我展示了“即使在php bin/console cache:clear --env=prod --no-debug

之后,我的系统已准备好运行Symfony Projects'

1 个答案:

答案 0 :(得分:0)

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

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

render

另外,这个链接: 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

您是否运行了$sudo chown -R apache:apache /var/www/html/test.karljohnchow.com/ 命令?这一点非常重要。它会指出问题。 清除(和预热)缓存的命令是:

php bin/symfony_requirements

这与你上面显示的不同。