IIS中使用PHP-CGI报500错误问题可能原因
在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"