直到现在,我一直在编写 Symfony 2 应用程序并且从未负责发布。所以我只调用了 Smyfony 2app_dev.php
并且只使用了开发配置。现在我要处理 Symfony 2 的发布,在上线之前要考虑什么?
- 我在哪里可以为不同的环境设置不同的配置(数据库连接等)以及如何调用它们?
- 如何确保无法通过
app_dev.php
实时服务器调用应用程序? - 以及在实时推送 Symfony 2 应用程序时需要注意的任何其他提示。
直到现在,我一直在编写 Symfony 2 应用程序并且从未负责发布。所以我只调用了 Smyfony 2app_dev.php
并且只使用了开发配置。现在我要处理 Symfony 2 的发布,在上线之前要考虑什么?
app_dev.php
实时服务器调用应用程序?首先,我们对此进行了记录: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
我在哪里可以为不同的环境设置不同的配置(数据库连接等)以及如何调用它们?
如果您没有对项目进行太多更改,那么您的配置文件位于 app/config 下
如何确保无法通过实时服务器上的 app_dev.php 调用应用程序?
同样,如果您没有对项目进行太多更改,您唯一需要关心的是确保您的 Web 服务器从 /web 运行网站(其余的由 .htaccess 完成)
以及在实时推送 Symfony 2 应用程序时需要注意的任何其他提示。
您可以密切关注 app/logs 中的日志文件