在Symfony 4中,index.php默认设置dev模式
$env = $_SERVER['APP_ENV'] ?? 'dev';
Run Code Online (Sandbox Code Playgroud)
Symfony官方文档说:Symfony Dotenv应该只用于开发/测试/登台环境.对于生产环境,请使用"真实"环境变量.
所以我理解:APP_ENV=prod因为环境变量是强制启用prod模式的.
我对吗?
dbr*_*ann 12
您必须确保APP_ENV在生产环境中正确设置环境变量.该文档告诉您如何为各种Web服务器执行此操作.例如,在您必须使用的Apache配置中SetEnv.这看起来像这样:
DocumentRoot /var/www/project/public
<Directory /var/www/project/public>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
</Directory>
SetEnv APP_ENV prod
SetEnv APP_DEBUG 0
...
Run Code Online (Sandbox Code Playgroud)
nginx的类似配置会使用fastcgi_param,看起来有点像这样:
location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/var/run/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param APP_ENV prod;
fastcgi_param APP_DEBUG 0;
}
Run Code Online (Sandbox Code Playgroud)
doc页面有点意思,因为各个位被注释掉了.
如果您想使用内置的Web服务器模拟生产环境,您可以这样做:
APP_ENV=prod APP_DEBUG=0 bin/console server:run
Run Code Online (Sandbox Code Playgroud)
这需要使用composer安装server-pack,当然您也可以设置命令选项--env,以获得相同的效果.
| 归档时间: |
|
| 查看次数: |
8891 次 |
| 最近记录: |