IIS7上安装PHP-5.3.27教程


关键词

Windows2008_R2(64位)IIS7.5安装PHP-5.3完美教程

摘要

在Windows2008 R2(64位)系统上,IIS版本是7.5,如何安装支持PHP5.3呢?本文尝试讲解之。

在Windows2008 R2(64位)系统上,IIS版本是7.5,如何安装支持PHP5.3呢?本文尝试讲解之。

[软件环境]

操作系统:Windows 2008 R2 Service Pack 1 (64位)
IIS环境:IIS 7.5
PHP版本:php-5.3.8-nts-Win32-VC9-x86 或 php-5.3.27-nts-Win32-VC9-x86

[PHP版本的选择]

目前php官网(http://windows.php.net/download/)提供的php-5.3的版本编号为5.3.27。可下载版本有VC9 x86 Non Thread Safe和VC9 x86 Thread Safe两种子版本。两个子版本都x86的,所以对于5.3而言,没有64位的PHP可用,只能将就用一下32位的。

对VC版本的选择,php.net官网上是这样讲的:
1)如果是用于 IIS 则选择 PHP 5.3 VC9 Non Thread Safe 或者 VC6 Non Thread Safe;
2)如果是用 IIS7 或更高版本以及 PHP 5.3+,则应选择 VC9 的包;
3)如果是用于 Apache 1 或 Apache 2 则选择 PHP 5.3 VC6 或者 PHP 5.2 VC6。

关于配置VC,官网还有这样的说法:VC9 版本是用 Visual Studio 2008 编译的并且在性能和稳定性上都有所提高。VC9 版本需要用户系统中安装有 ? Microsoft 2008 C++ Runtime (x86) 或者 ? Microsoft 2008 C++ Runtime (x64)。

洪哥选择下载的是Zip包的格式,链接地址:http://windows.php.net/downloads/releases/php-5.3.27-nts-Win32-VC9-x86.zip

[配置PHP]

php进入5.3之后,基本上都是配置FastCGI的模式,而且配置过程真是太简单了。按下面步骤走即可。
1、解压php的Zip包
洪哥将php-5.3.27-nts-Win32-VC9-x86.zip解压到D:\php-5.3\目录下

2、设置php.ini
解压缩 PHP 的包之后,将 php.ini-production 拷贝一份到同一目录下,命名为“php.ini”。

3、修改php.ini
1)extension_dir = <指向扩展库目录的路径>
extension_dir="D:\php-5.3\ext"

2)开放extension
洪哥开放了一下gd2和MySQL相关的几个扩展,将下面几行前面的分号(;)去掉 即可。
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll

3)设置date.timezone
date.timezone = Asia/Shanghai

4)设置几个和FastCGI相关的参数
cgi.force_redirect = 0
在 IIS 下运行时需要关闭此项指令。这是个在许多其它 web 服务器中都需要激活的目录安全功能,但是在 IIS 下如果激活则会导致 PHP 引擎在 Windows 中出错。

cgi.fix_pathinfo = 1
此指令可以允许 PHP 遵从 CGI 规则访问真实路径信息。IIS 的 FastCGI 实现需要激活此指令。

fastcgi.impersonate = 1
IIS 下的 FastCGI 支持模拟呼叫用户方安全令牌的能力。这使得 IIS 可以定义请求方的安全上下文。

fastcgi.logging = 0
FastCGI 日志在 IIS 下应被关闭。如果激活,则任何类的任何消息都被 FastCGI 视为错误条件从而导致 IIS 产生 HTTP 500 错误。

[配置IIS7.5支持PHP]

1、在IIS7.5的安装界面,把“应用程序开发”下面的“CGI”安装上去。否则IIS上无法配置PHP。

2、打开IIS7.5的MMC管理界面,点击左边的机器名,右边将出现整个IIS的全局配置选项。

3、双击右边的“处理程序映射”,在弹出的界面中的右边菜单中选择“添加模块映射”。

4、在“添加模块映射”的弹出窗口中,进行如下填写。
请求路径:*.php
模块:FastCgiModule
可执行文件(可选):D:\php-5.3.8\php-cgi.exe
名称:PHP-FastCGI
按照php的官网,还需要在这个窗口中,点击“请求限制”按钮,在弹出的“请求限制”窗口中,勾选“仅当请求映射至以下内容时才调用处理程序”,然后下面单选按钮选择“文件或文件夹”。


image

5、在确认“添加模块映射”窗口时会弹出一个提示窗口,意思是将为其增加一个FastCGI的应用程序,选择“是”。这时在FastCGI设置中将出现一个关于PHP的程序程序。

6、当然,还应该为php程序添加一下“默认文档”,将index.php和default.php都添加进去。

7、重启一下IIS。

到此为止,php在IIS上的配置已经结束。但郁闷的是,洪哥写了一个php页面来做测试,但居然不能使用,提示的错误信息是“发生未知 FastCGI 错误”,错误代码为0x800736b1。几经折腾,终于找到了如下的解决方法。

[VC及VC运行环境的位数]

洪哥下载的PHP是VC9编译的,所以,还需要安装VC9的运行环境。
因为洪哥的服务器上64位的操作系统,所以洪哥下载了一个“vcredist_x64.exe”文件,它的软件名称叫作“Microsoft Visual C++ 2008 Redistributable Package (x64)”。但安装时提示系统已经安装了此软件,问要不要修复一下。我想应该是之前的版本有问题,那就修复一下吧,但郁闷的是,修复后问题依旧。
后来突发灵感,因为我下载的php是32位的(上面已经提到过),那是不是这个VC9的编译运行环境也要用32位的呢?于是使劲的找,终于找到一个文件“vcredist_x86.exe”,它的软件名称是Microsoft Visual C++ 2008 Redistributable Package (x86)。一开始还在想,它会不会与前面安装的那个64位的有冲突,心里很忐忑。尝试安装它,居然没有提示错误,重新刷新之前的php测试页面,phpinfo跃入眼帘,搞定!

提示:
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

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

 

要饭二维码

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

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:IIS7上安装PHP-5.3.27教程:http://www.splaybow.com/post/windows-2008-iis75-php53-install.html

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

« .NET程序如何实现静态映射 PHP发生未知FastCGI错误,错误代码为0x800736b1 »

相关文章:

工作进程未能初始化 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)