当前位置:首页 > 技术积累 > 正文内容

IIS中使用PHP-CGI报500错误问题可能原因

竹林之风5年前 (2019-10-22)技术积累3359

        在IIS中使用CGI方式运行PHP网站突然报500服务器错误,需要判断当前系统的软件环境有何变化去一一排查,通常可能的原因有:

(1)PHP程序因有BUG而报错,查看网页报错具体提示或程序错误日志并定位具体BUG位置和修改;

(2)MySQL等数据库因地址、端口、账号或密码等有变化而不能连接数据库或因故障停止服务,检查数据库连接信息并修改,或检查数据库服务运行状态并通过数据库错误日志和Windows错误日志排查故障

(3)应用程序池或网站使用的系统账号是否有密码和权限相关的变化,检查应用程序池、网站和相关账号的状态,如应用程序池进程模型标识设置为LocalSystem;

(4)php-cgi.exe是否无法运行,直接双击运行php-cgi.exe看是否有报错提示,比如缺少dll等,此种情况检查是否未安装Visual C++运行库;

(5)IIS与PHP-CGI相关的配置是否有变化,检查IIS的CGI相关配置;

(6)PHP配置是否有变化,检查PHP相关设置,如未将php.ini复制到C:\Windows;

(7)WinServer2012可能报错“指定的CGI应用程序由于未返回完整的一组 HTTP 头而产生错误行为……”,则修改php.ini配置:

cgi.force_redirect = 0
cgi.redirect_status_env = "yes"

扫描二维码推送至手机访问。

版权声明:本文由久爱编程网发布,如需转载请注明出处。

本文链接:http://9icode.com/index.php/post/40.html

分享给朋友:

相关文章

jQuery AJAX跨域在IE9及以下版本中失效问题

jQuery AJAX跨域在IE9及以下版本中失效问题

        使用jQuery AJAX在IE9及以下版本浏览器中提交HTTP跨域请求时,浏览器会报错且并不执行该操作,是因为IE9及以下版本默认不支持跨域请...

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常,是因为设置Response的StatusCode之前,程序已设置响应标头。可从以...

ASP.NET网站自定义错误处理及其它安全相关

ASP.NET网站自定义错误处理及其它安全相关

        ASP.NET网站在运行过程中总是有可能报错,例如404等HTTP错误、500等程序异常。在IIS托管并报错的情况下,网站的默认行为依次是:(1).NET运行时接收并处理的部分显示.N...

从被扫描记录看网站安全应该注意的一些细节

从被扫描记录看网站安全应该注意的一些细节

1、尽可能地隐藏服务器真实IP,减少攻击目标。例如使用负载均衡、网关等作为门户,由负载均衡或网关转发到后端服务器。2、服务器必须开放的服务(除HTTP、HTTPS等为公众开放的服务外),尽可能改为其它较大的不常用的端口号,这样攻击者需要扫描...

ASP.NET Core网站报“An assembly specified in the application dependencies manifest was not found”异常解决

ASP.NET Core网站报“An assembly specified in the application dependencies manifest was not found”异常解决

        ASP.NET Core网站报“An assembly specified in the application dependencies ma...

ASP.NET MVC WebApi控制器方法使用async假死超时问题

ASP.NET MVC WebApi控制器方法使用async假死超时问题

        在一个ASP.NET MVC WebApi控制器方法中使用async标记为异步方法后,有时会假死超时。根本原因是同步方法和异步方法混合造成的死锁...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。