我正在尝试为Symfony 4生产环境禁用探查器。我在config / packages / dev / web_profiler.php中做到了。只隐藏了我的调试工具栏。
但是,当我浏览URL www.symfony4app.com/_profiler时,我可以看到所有信息。
有什么办法可以完全删除生产环境中对探查器的访问权限吗?
答案 0 :(得分:1)
由于您说过在config/packages/dev/
中更改了配置并生效,因此您的应用程序环境未正确配置,并且当前在dev
环境中运行,因为它决定了如何加载应用程序配置。来自documentation。
Symfony以此顺序加载配置文件(最后一个文件 可以覆盖之前设置的值):
config/packages/*.yaml config/packages/<environment-name>/*.yaml config/packages/services.yaml
您必须更改环境变量APP_ENV
,而环境变量又可以在.env
文件(或.env.local
,如果存在)中或在服务器配置中(最好)设置。
文件config/bundles.php
确定在哪些环境中可用的捆绑软件。如果将其加载到prod
中,则很可能出现以下行:
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['all' => true],
只需将其更改为:
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Flex通常会按照适当的配置进行安装,但是您也可以使用composer --dev
选项添加软件包,并在--no-dev
中使用prod
安装软件包。