【发布时间】:2013-01-06 10:56:17
【问题描述】:
我正在使用 FastCGI 运行 Lighttpd 网络服务器,并且网络服务器不输出 PHP 解析错误。
我的 php.ini 文件有以下设置:
error_reporting = E_ALL
display_errors = Off
display_startup_errors = Off
log_errors = On
html_errors = On
我在这样的 PHP 脚本中启用错误输出以进行开发(其他环境有冗余):
error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
ini_set( 'html_errors', 'On' );
大多数错误输出正常。解析错误不会。下面是引发解析错误的示例代码。该错误不是由 Lighttpd 网络服务器输出的,而是在从命令行执行时,因为它没有使用 FastCGI。 (注意缺少连接运算符):
<?php echo 'foo' 'bar'; ?>
我发现如果我在 php.ini 中设置 display_errors = On,然后使用 FastCGI 和 Lighttpd 正确解析错误输出,但是我无法在我的 PHP 脚本中使用 ini_set( 'display_errors', 0 ) 将它们关闭。
我希望在开发应用程序时能够在我的应用程序中显示这些,并且能够在不更改 php.ini 配置的情况下将它们关闭以进行生产。使用 FastCGI 时是否无法在我的 PHP 应用程序中执行此操作?
【问题讨论】:
标签: php syntax-error runtime-error fastcgi lighttpd