仅在一个站点上显示 PHP 错误

Display PHP errors on only one site

提问人:Tommy Brunn 提问时间:8/10/2011 更新时间:8/10/2011 访问量:4254

问:

我有一个开发环境和一个在同一台主机上运行的实时环境,使用 nginx 和 fastcgi。在 php.ini 中,设置为 off,以便错误不会显示在生产站点上。display_errors

现在,在开发环境中,我需要能够看到这些错误。所以我会这样做,但是,如果这是一个解析错误,则不会执行该错误,也不会显示该错误。ini_set('display_errors', 'On');

所以我的问题是,有什么方法可以在我的php.ini文件中安全地设置为打开,然后可能使用 nginx 中的虚拟主机文件来确保错误不会显示在生产站点上?display_errors

php nginx 错误报告

评论

0赞 EdoDodo 8/10/2011
这可能很有用:stackoverflow.com/questions/1049326/...
2赞 Tommy Brunn 8/10/2011
不幸的是没有,因为我没有使用Apache。
0赞 Marian 8/10/2011
看这里: stackoverflow.com/questions/107828/...你可以用.htaccess解决这个问题
3赞 Tommy Brunn 8/10/2011
nginx 不支持 .htaccess。

答:

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 - 并且不会显示错误。