windows server 2008中iis7中的php5.3出现 Server 内部错误500的解决


1,问题描述

某windows server 2008服务器中运行了iis7.5,其中iis内置了php5.5和php5.3的支持。

配置完毕后发现,采用php5.5的网站正常,而采用php5.3的网站访问其中的php文件时,出现如下错误:

错误 500.0 - Internal Server Error发生未知 FastCGI 错误

2,问题分析

查看php5.3的error log文件,发现其中没有内容。

检查网站的.php文件类型的映射,确实是采用fastCGLModule来处理。

检查相关文件和文件夹的安全属性,设置无误。

问题似乎没有头绪。

3,php命令行错误的分析

想到php5.5正常,为啥php5.3不正常,因此想比较一下。

在命令行下,分别运行 php -v 命令,结果php 5.3报错:

D:\php\php-5.3>php -v
应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具。

因此先运行调试工具程序,

D:\php\php-5.3>sxstrace.exe Trace -logfile:C:\trace.log
已启动跟踪。跟踪将保存到文件 C:\trace.log。
按 Enter 停止跟踪...

然后执行命令,php -v

再执行下述命令,分析出具体问题:

D:\php\php-5.3>sxstrace.exe Parse -logfile:C:\trace.log -outfile:C:\trace.txt
正在分析日志文件 C:\trace.log...
分析完毕! 将输出保存到文件 C:\trace.txt。

打开C:\trace.txt,内容如下:

显然,问题的关键就是系统未找到“9.0.21022.8”版本的VC9.0的32位版本的DLL。

Download Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package MFC Security Update from Official Microsoft Download Center

在上述网址下载 vcredist_x86.exe,注意不是vcredist_x64.exe,然后安装后,php5.3网站正常。

4,后记

后来在网上查找到以下文章,故障现象与解决方案与本人的问题基本类似。可作为参考:

(13条消息) HTTP 错误 500.0 - Internal Server Error 发生未知 FastCGI_weixin_33709609的博客-CSDN博客

windows操作系统由于本部众多,某些依赖库不一定都安装了,在出现问题时,可使用sxstrace.exe程序协助定位具体的问题。