iis 输出php错误
IIS 输出 PHP 错误
随着互联网的不断发展,基于 PHP 语言的网站越来越多,而 IIS 是一个常用的 Web 服务器平台。在使用 IIS 运行 PHP 程序时,难免会遇到一些 PHP 错误问题。为了排除这些问题,需要了解 IIS 如何输出 PHP 错误。
IIS 默认情况下不会显示 PHP 错误,这是由于安全性考虑。如果 PHP 脚本中的错误信息直接输出,可能会泄露服务器上的重要信息,从而给黑客攻击留下了漏洞。因此,IIS 在默认情况下会将 PHP 错误信息记录在 Windows 事件日志中,只有管理员才能访问该日志。
如果你希望在 IIS 中直接看到 PHP 错误信息,你需要修改 PHP 和 IIS 的设置。
打开 PHP.ini 文件,找到以下两行:
display_errors = Offlog_errors = On
将 display_errors 的值改成 On。这样,PHP 脚本中的错误信息就会直接输出到浏览器上,方便查看。同时,如果你想把错误信息记录到日志里,可以将 log_errors 的值改成 On。
修改完成后,需要重启 IIS 服务器才能生效。
打开 IIS 管理器,找到你的网站,双击“错误页”,然后点击“编辑特性设置”。
在“编辑特性设置”页面的“编辑属性”对话框中,找到“发送详细错误消息到客户端”这个选项,并将其设为“true”。
此外,对于 IIS7 及以上版本,还需要设置 fastcgi 模块。
打开 IIS 管理器,在“服务器节点”下右击,选择“模块” 选项,将 fastcgi 模块的“失败请求跟踪的详细程度”设置为“详细”,然后重启 IIS 服务器。
PHP 的错误信息通常包括两部分内容,即错误类型和错误消息。
常见的 PHP 错误类型包括:
- Fatal Error,致命错误,会导致程序中止运行;
- Syntax Error,语法错误,通常是拼写错误或者引号未配对等;
- Warning,警告信息,通常表示程序可能会出现问题;
- Notice,提示信息,通常是一些不重要的信息。
常见的 PHP 错误消息包括:
- Undefined variable,未定义变量;
- Call to undefined function,调用未定义函数;
- Division by zero,除数为 0;
- Cannot modify header information,无法修改报头信息;
- Failed opening required,无法打开所需的文件。
IIS 的默认设置下不会直接输出 PHP 错误信息,需要自己进行一些设置。在修改 PHP 的设置时,需要将 display_errors 设置为 On,并将 log_errors 设置为 On,以便方便地查看 PHP 错误信息。在修改 IIS 的设置时,需要将“发送详细错误消息到客户端”这个选项设为“true”,并设置 fastcgi 模块的详细程度。最后,还需要掌握常见的 PHP 错误类型和消息,才能更好地进行排错和修复。
一、排除基本错误
在开启iis输出php错误前,需要排除一些基本错误,可能造成输出失败或错误。这包括检查HTML代码、数据库连接、变量是否正确等。准备好充足的时间,耐心排查下去,你会惊喜地发现问题或许不是那么复杂。
二、修改php.ini配置文件
打开php.ini配置文件,搜索并找到下列代码:error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
将其修改为:error_reporting = E_ALL 在下列代码下方添加代码:display_errors = On
这样配置完后,访问php页面会直接在页面上显示错误信息。
三、修改iis注册表项 方法
打开注册表编辑器,找到以下目录:HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters\\Script Map 修改其php5isapi.dll值为你的绝对路径。
接下来,在该目录下继续添加一个新项:里面有三个参数,分别为: Extension .php、 ScriptEngine C:\\php\\php-cgi.exe(注意替换成你的路径)、Flags 1。
重启IIS后就可以直接在页面输出php错误啦!
四、使用调试工具追踪
如果以上两种方法都无法解决问题,我们就需要使用工具进行调试追踪了。常用的有xdebug、phpdbg等调试工具,具体使用方法可自行百度。
当出现php错误时,及时发现并进行解决非常重要。希望以上方法能够帮到需要的你,让你早日解决疑难问题!