PHP发生未知FastCGI错误,错误代码为0x800736b1


关键词

PHP发生未知FastCGI错误 错误代码为0x800736b1

摘要

<p>洪哥刚配置的一台Windows 2008 R2 Service Pack 1的服务器,IIS是7.5版本。PHP使用的php-5.3.8-nts-Win32-VC9-x86.zip,使用Zip解压的方式进行的安装。安装完之后运行PHP代码提示错误:发生未知FastCGI错误,错误代码为0x800736b1。<br /></p>

PHP发生未知FastCGI错误,错误代码为0x800736b1

洪哥刚配置的一台Windows 2008 R2 Service Pack 1的服务器,IIS是7.5版本。PHP使用的php-5.3.8-nts-Win32-VC9-x86.zip,使用Zip解压的方式进行的安装。

[问题起因]

安装配置的过程,洪哥就不详细说明了,可以参见:Windows2008上安装php5.3
但是在安装配置之后,运行php测试页面时出现错误:发生未知FastCGI错误,错误代码:0x800736b1。这是什么原因,洪哥陷入了郁闷之中。

洪哥多次检查了安装配置的过程,又对照的PHP.net官方网站的说明,均未发现有任何问题,通过官网找了一下,也没有发现其它人有类似的问题。洪哥于是凭经验随便做一些测试。

[php.exe直接运行居然失败]

php除了配置在IIS上之外,还可以单独来作为系统脚本使用,于是想到了,直接在cmd.exe下面执行php.exe,看看是什么效果。结果大吃一惊,提示如下:

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

[使用sxstrace.exe进行调试]

连PHP本身直接运行都运行不了,那肯定在IIS上也是无法运行的了!那问题到底在哪里呢,洪哥根据上面的提示,使用 sxstrace.exe 工具来作了检测,测试之后得到一个文件。这个不知道是什么编码的文件,里面有很多乱码,也有一部分可识别的字符,其中有两次出现了tzres.dll这个文件。虽然调试结果文件上没有明确说明就是它的问题,但我还是这样怀疑了。

[倒霉的tzres.dll]

检查了一下tzres.dll文件是否存在?存在。是否注册了?regsvr32再注册一下,问题依旧。是不是权限不正确?加了一个everyone可读可执行,问题仍旧。

[网上说是VC9的运行环境的问题]

后来在网上多找到了找,看到有人说是VC9的运行环境有问题,于是按照它给的地址进行下载安装。下载到的文件是“Microsoft Visual C++ 2008 Redistributable Package (x64)”,文件名为“vcredist_x64.exe”。安装时提示“修复”Or“卸载”,我晕,很明显系统上已经有这个东西。于是还是选择修复一下吧,死马当活马医了。修复完了不行,于是不甘心,又把服务器重启了一遍,仍然搞不定……

[Visual C++ 2008 Runtime x86]

后来突发灵感,因为我下载的php是32位的(上面已经提到过),那是不是这个VC9的编译运行环境也要用32位的呢?(上一步用是64位的Runtime环境)终于找到一个文件“vcredist_x86.exe”,它的软件名称是Microsoft Visual C++ 2008 Redistributable Package (x86)。一开始还在想,它会不会与前面安装的那个64位的有冲突,心里很忐忑。尝试安装它,居然没有提示错误,重新刷新之前的php测试页面,phpinfo跃入眼帘,搞定!

郁闷一扫而空,但还是要多说几句。现在网上装php的教程里面很少有提到要VC环境的,甚至连PHP官网都没有怎么说。而且这里用的是VC9,就是Visual C++ 2008;后面的PHP版本有的是VC11的,貌似是Visual C++ 2010编译的,它的运行时环境应该又有所不同。
当然,除了版本编号以外,32位与64位也是一个问题。运行时环境(VC)的位数应该写PHP的位数一致,而不是与Windows系统一致,这一点尤其重要。

好了,就扯这么多,希望本文对遇到“发生未知 FastCGI 错误”,错误代码为0x800736b1的朋友有所帮助,谢谢!

提示:
Microsoft Visual C++ 2008 Redistributable Package (x86) 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=29
Microsoft Visual C++ 2008 Redistributable Package (x64) 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=15336

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权


如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« IIS7上安装PHP-5.3.27教程 IIS打开里面空白 »

相关文章:

工作进程未能初始化 http.sys 通信或 w3svc 通信层,因此无法被启动。数据域包含错误号  (2015/5/8 11:23:57)

为网站添加匿名访问用户  (2014/7/14 11:33:30)

在服务器上找不到脚本语言 'VBScript.encode'  (2014/7/3 9:40:52)

IIS+Tomcat整合配置  (2014/3/10 11:30:29)

IIS6配置继承  (2014/3/11 11:25:56)

IIS6的常用设置  (2014/3/12 11:22:55)

IIS6主要概念  (2014/3/13 11:19:04)

IIS6主要服务  (2014/3/15 11:14:05)

IIS6.0迁移至IIS7.0  (2014/3/7 16:54:18)

IIS设置下载exe格式的文件  (2014/1/25 12:01:51)