IIS7上安装PHP-5.3.27教程

时间:2016-04-14 11:31 / 来源:未知 / 作者:酱油 / 点击:

在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的官网,还需要在这个窗口中,点击“请求限制”按钮,在弹出的“请求限制”窗口中,勾选“仅当请求映射至以下内容时才调用处理程序”,然后下面单选按钮选择“文件或文件夹”。




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的朋友有所帮助,谢谢!

猜你喜欢

推荐栏目

DEDECMS
DEDECMS

DEDE使用经验和技巧

WordPress
Wordpress

WP使用经验和技巧

Zblog
Zblog

Zblog使用经验和技巧

CSS
CSS

CSS使用经验和技巧

网络资料
网络资料

转载实用网络资料

按键伤人
按键伤人

转载乱七八糟的网络资源

我是酱油
我是酱油

随笔札记 记录生活点滴

本站推荐

百度站内搜索

专业博客主机