0

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

  • 我在哪里可以为不同的环境设置不同的配置(数据库连接等)以及如何调用它们?
  • 如何确保无法通过app_dev.php实时服务器调用应用程序?
  • 以及在实时推送 Symfony 2 应用程序时需要注意的任何其他提示。
4

2 回答 2

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.phpindex.php获取类似mysite.com/app.php/blog/foobar. 但最好创建一个简单的 HTACCESS mod_rewrite 规则来发送所有请求app.php,这样您就可以使用mysite.com/blog/foobar.

.htaccess在根:

RewriteEngine On
RewriteBase /
RewriteRule ^(.*?)$ app.php$1
于 2012-12-14T22:04:01.377 回答
0

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

如果您没有对项目进行太多更改,那么您的配置文件位于 app/config 下

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

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

以及在实时推送 Symfony 2 应用程序时需要注意的任何其他提示。

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

于 2012-12-14T22:07:13.900 回答