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

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

        在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长连接与短连接、长轮询与短轮询及长轮询的实现概述

        HTTP长连接(long connection)与短连接(short connection)本质上是TCP长连接和短连接:短连接是指在一次HTT...

小试Git源码版本控制

        我们一个人开发或维护一个项目的时候,一般项目源码放在自己的电脑上就可以了;当加入新成员和我们一起开发或维...

C#中问号“?”的用法

        在C#中问号有单问号和双问号两种场景,其中单问号就是用于条件表达式的一个三元运算符;双问号有两个用法:可...

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常时,其中一个原因是:在已经重定向后又重定...

ASP.NET MVC中的Area区域简介

        ASP.NET MVC4有预定义的目录规则,框架根据这些目录规则去加载各种类。在MVC单项目中,随着业务...

在ASP.NET Core下使用Scaffold-DbContext命令自动从数据库生成EF Core模型

        在ASP.NET Core下使用EF Core读取和操作数据库时,若采用DB First开发模式,则需要...

发表评论    

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