在Symfony3中,当我想在“实时”服务器上的DEV环境中浏览网站时,我只需在/web/app_dev.php
中输入我的IP地址,然后在浏览器中打开http://www.example.com/app_dev.php/
。
由于在Symfony4中,环境现在设置为/.env
,如何在生产计算机上查看DEV环境?
编辑:我正在寻找一种在生产中的解决方案,因此应用任何全局更改(例如在{{1}中设置APP_ENV=dev
})不是一个选项。
答案 0 :(得分:2)
您可以在.env
文件APP_ENV
内更改为dev:
APP_ENV=dev
如果设置该变量symfony将系统加载到开发环境中,因为在Kernel.php中有一行检查该变量:
$kernel = new Kernel($_SERVER['APP_ENV'] ?? 'dev', $_SERVER['APP_DEBUG'] ?? false);
如果您想在不更改.env文件的情况下执行此操作,您可以根据您访问的网址(例如APP_ENV=/home/user/app-name/dev.env
或现场直播)在Apache vhost或Nginx FastCgi配置中设置变量服务器:APP_ENV=/etc/app-name.prod.env
因此,在这种情况下,您有许多.env文件,但您可以使用基于网址的规则
答案 1 :(得分:0)
起初这是个坏主意,这就是wasn't possible by default to access app_dev.php on production server(symfony< 4)的原因。你向公众,尤其是攻击者提供了大量内部信息。
来自symfony docs:
部署到生产后,请确保您无法访问app_dev.php或config.php脚本(即http://example.com/app_dev.php和http://example.com/config.php)。如果您可以访问这些,请务必从上面的配置中删除DEV部分。
您应该能够从日志中调试大部分内容。
但是如果你真的想这样做,你可以删除public/index.php
并创建public/app.php
和public/app_dev.php
,就像在symfony 3中一样,并使其与env变量一起使用。 - https://github.com/symfony/symfony-standard/tree/3.4/web
编辑:要明确:您可以删除public/index.php
,创建public/app.php
,public/app_dev.php
(index.php
的副本)。从symfony 3标准版中获取灵感,根据您的需求进行调整。
EDIT2:正如@Cerad所说,拥有index.php
和index_dev.php
文件名是更好的主意(遵循Symfony4的决定)。