提问人:Tommy Brunn 提问时间:8/10/2011 更新时间:8/10/2011 访问量:4254
仅在一个站点上显示 PHP 错误
Display PHP errors on only one site
问:
我有一个开发环境和一个在同一台主机上运行的实时环境,使用 nginx 和 fastcgi。在 php.ini 中,设置为 off,以便错误不会显示在生产站点上。display_errors
现在,在开发环境中,我需要能够看到这些错误。所以我会这样做,但是,如果这是一个解析错误,则不会执行该错误,也不会显示该错误。ini_set('display_errors', 'On');
所以我的问题是,有什么方法可以在我的php.ini文件中安全地设置为打开,然后可能使用 nginx 中的虚拟主机文件来确保错误不会显示在生产站点上?display_errors
答:
3赞
J0HN
8/10/2011
#1
如果您使用的是 fastcgi,您可以将其配置为使用不同的 php.ini 文件运行 php。我不熟悉 nginx 和 fastcgi 配置,所以无法为您提供任何提示。参见 php 手册来了解如何运行 PHP。
我想你可能想像开发环境一样运行它php -d display_errors=On
评论
0赞
Tommy Brunn
8/10/2011
这是一个很好的建议。现在正在研究如何为单个虚拟主机设置它。如果有人对如何做到这一点有任何想法,请插话。
0赞
Tommy Brunn
8/10/2011
我的一位同事想通了。他必须设置一个单独的 php-cgi 守护进程。
1赞
SleighBoy
8/14/2011
使用 php-fpm 并使用不同的套接字/端口设置不同的“池”,然后您可以加载每个池的特定设置。
0赞
primehunter326
8/10/2011
#2
我相信您可以使用 error_report 直接在脚本中设置错误报告级别。我手头没有任何代码可以确定,但我知道您可以在不接触php.ini的情况下更改它。
评论
0赞
Tommy Brunn
8/10/2011
error_report只决定了要报告的内容。display_errors决定是否显示错误。这些解决方案中的任何一个的问题在于,当使用 CGI 运行脚本时,如果出现解析错误,则永远不会运行脚本。由于脚本未运行,因此永远不会设置display_error - 并且不会显示错误。
评论