我是 Symfony 的新手。一直在做一些测试(Symfony 2.0.13 和 WAMP2.2 中的 php5.3.8)并阅读文档,但我对环境有点困惑。
当我转到LOCALHOST/Symfony/web/app_dev.php/demo/hello/Foo
(app_dev 表示开发环境,对吗?)我可以看到 Web 调试工具栏并单击分析器信息,在“项目配置”选项卡中,我可以看到:
Environment dev
现在我转到LOCALHOST/Symfony/web/app.php/demo/hello/Foo
web 调试工具栏(顺便说一句,为什么我现在看到这个工具栏?这不是生产环境吗?我的用户应该默认看到这个栏吗?)我还看到,在“项目配置" 选项卡:
环境开发
似乎这个“演示”包以某种方式与“开发”相关联,无论 URL 是 app_dev.php 还是 app.php?
此外,我还做了一些测试:我的本地 IP 是 192.168.153.1。
当我尝试访问时:
http://192.168.153.1/Symfony/web/app_dev.php/demo/hello/Foo
它说“您无权访问此文件。请检查 app_dev.php 以获取更多信息。” 所以,好的,如果我编辑 app_dev.php 中的行并添加我的(外部)IP,我可以访问。
但是,当我连接到
http://192.168.153.1/Symfony/web/app.php/demo/hello/Foo
它说的是一样的!所以似乎我的 app.php 没有被执行,无论我在 URL 中输入什么,app_dev.php 都在执行。
这真是令人困惑!我检查了我的 htaccess,一切似乎都是正确的。
谁能帮我解决这个问题?
我没有修改 app_dev.php 的代码,也没有修改 app.php,一切都是“按原样”开箱即用的。
2012-05-02 编辑
奇怪的事情发生了。我用这些行编辑了我的 config_prod.yml:
# load the profiler
framework:
profiler: { only_exceptions: false }
# enable the web profiler
web_profiler:
toolbar: true
intercept_redirects: true
verbose: true
保存,然后编辑 app.php 文件。想测试如果我改变会发生什么:
$kernel = new AppKernel('prod', false); //Symfony default
至
$kernel = new AppKernel('prod', true);
当我转到 app.php/WHATEVER 时,出现了一个错误页面,所以我恢复了所有更改,重新启动了 Apache,现在 WebDebug 工具栏不再显示在 PROD (app.php/WHATEVER) 中
所以,我不知道如何,但它现在似乎按预期工作,虽然 config_prod.yml 文件和 app.php 处于原始状态。它还允许我用我的外部 IP 连接到 app.php
真的很奇怪...