Symfony 2 - 上线前该怎么办?

时间:2012-12-14 20:55:02

标签: symfony configuration production

到目前为止,我一直在编写Symfony 2应用程序,从不负责发布。所以我只在app_dev.php上调用了Smyfony 2并且只使用了开发配置。现在我必须处理Symfony 2的发布,在上线之前需要考虑什么?

  • 在哪里可以为不同的环境设置不同的配置(数据库连接等)以及如何调用它们?
  • 如何确保无法通过实时服务器上的app_dev.php调用应用程序?
  • 在实施Symfony 2应用程序的同时,解决有关应该注意什么的任何其他提示。

2 个答案:

答案 0 :(得分:1)

首先,我们记录了这一点:http://symfony.com/doc/current/cookbook/deployment-tools.html那篇文章刚刚回答了第一个和第三个问题,第二个问题的答案是:

  

如何确保无法通过实时服务器上的app_dev.php调用该应用程序?

您应该将您网站的根目录指向web目录。例如,如果您的网站位于:

mysite.com/
    public_html/
        ... your site files/directories

你应该这样:

mysite.com/
    app/
        ...
    src/
        ...
    vendor/
        ...
    public_html/ <--- this is the old web directory
        ...
        app.php

您也可以阅读如何将web中的public_html目录更改为文档:http://symfony.com/doc/current/cookbook/configuration/override_dir_structure.html

这样做的原因是为了保护所有应用程序代码。用户无法访问所有app/.vendor/.src/.文件,因此无法读取配置,无法读取参数。

最后,您可以将app.php更改为index.php,以获取mysite.com/app.php/blog/foobar等网址。但最好创建一个简单的HTACCESS mod_rewrite规则来将所有请求发送到app.php,这样您就可以使用mysite.com/blog/foobar访问该页面。

根目录中的

.htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^(.*?)$ app.php$1

答案 1 :(得分:0)

  

在哪里可以为不同的环境设置不同的配置(数据库连接等)以及如何调用它们?

如果您没有对项目进行过多更改,则配置文件位于app / config

  

如何确保无法通过实时服务器上的app_dev.php调用该应用程序?

同样,如果您没有更改项目,您唯一需要关心的是确保您的Web服务器从/ web运行网站(.htaccess完成其余的工作)

  

在实施Symfony 2应用程序的同时,解决有关应该注意什么的任何其他提示。

您可以关注app / logs中的日志文件