windows 2008 R2 + fastcgi + php5.3.8 安装配置备忘

辛苦的字幕君小样 2011-09-28

最近需要在一台windows 2008 server r2的机器上安装部署iis + php环境。由于之前基本上没有配置过IIS+php运行环境,这次一边查资料一边学习,特此记录。

一、安装iis

这一步就比较简单了,开始-〉管理工具-〉服务器管理器。右键点角色选择添加角色。然后根据向导提示选择下一步,接下来选择 Web 服务器 (IIS)。继续下一步,够选CGI这一项,然后按照提示继续就安装完成了。

二、安装php5.3.8

1.下载php,本文发表时,最新php版本是5.3.8,进入 http://windows.php.net/download/ 页面下载。下载 VC9 x86 Non Thread Safe zip,下载完成以后解压到C:\php(自己随意)。

2.下载 Microsoft 2008 C++ Runtime (x86) Microsoft 2008 C++ Runtime (x64)  ,然后安装。

3.然后进入C:\php,复制一份 php.ini-production(或php.ini-development) ,复制好的文件改名为php.ini。

4.编辑php.ini,修改以下几项

fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
extension_dir = "./ext" 或者 extension_dir = "C:/php/ext"

 保存。

5.测试一下php是否可以正常运行。C:\php\php.exe -info

三、配置iis

开始-〉管理工具-〉Internet 信息服务(IIS)管理器,点击左侧的服务器,双击处理程序映射。右侧的操作菜单选择添加模块映射,弹出一个对话框,依次填好

请求路径:   *.php
模块:         FastCgiModule
可执行文件:C:\php\php-cgi.exe
名称:         Php FastCgi Global

点确定,然后继续确定。这样就基本配置完成了。

在wwwroot下建立一个phpinfo.php,内容为:

<?php
phpinfo();

 浏览器打开http://localhost/phpinfo.php,只要出现正常的phpinfo信息就算是成功了

四、调整php fastcgi 输出缓冲(responseBufferLimit)

默认值4194304,可以适当调小一点,比如 4096

打开 C:\Windows\System32\inetsrv\config\applicationHost.config

找到 system.webServer 节点下的 handlers 项 找到 <add name="Php FastCgi Global" 这一项。 增加一项属性

responseBufferLimit="4096"

五、调整fastcgi的timeout设置

1.全局调整

打开 C:\Windows\System32\inetsrv\config\applicationHost.config

找到 system.webServer 节点下的 fastCgi 项,修改activityTimeout和requestTimeout

<application fullPath="C:\php\php-cgi.exe" activityTimeout="300" requestTimeout="300">

2.站点级别调整

打开 C:\Windows\System32\inetsrv\config\applicationHost.config

找到 system.webServer 节点下的 fastCgi

增加一条 application

<application fullPath="C:\php\php-cgi.exe" arguments="longtime" activityTimeout="3000" requestTimeout="3000">

 arguments="longtime"是一个特殊的标示,也可以直接传入php-cgi.exe支持的参数

找到 configuration 节点,也就是 applicationHost.config 的根节点

插入:

<location path="Default Web Site">
        <system.webServer>
	    <handlers>
                <add name="Php FastCgi Default Web Site"
			 path="*.php"
			 verb="*"
			 modules="FastCgiModule"
			 scriptProcessor="C:\php\php-cgi.exe|longtime"
			 resourceType="Unspecified"
			 requireAccess="Script"
                         responseBufferLimit="4096" />
            </handlers>
        </system.webServer>
    </location>

location path="Default Web Site"  属性值为站点名

add name="Php FastCgi Default Web Site" name不能重复。

scriptProcessor="C:\php\php-cgi.exe|longtime" 管道符号|之前对应于fastCgi->application 中的fullPath的值,管道符号之后对应 arguments 的值。

responseBufferLimit 这里也需要重新设置。不设置的话就是默认值 4194304。

2.文件或者目录级别调整

与站点级别调整差不多,只要location path改成站点名/路径就行了

比如:

<location path="Default Web Site/download.php">
<location path="Default Web Site/download">
 
<location path="Default Web Site/download/download.php">

六、其他的比如不同的站点使用不同的php.ini设置请参考 http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-7/

相关推荐