本文包含了手动设置Internet信息服务(IIS)7.0和更高版本,从而使它们支持PHP在Windows 7中工作,此外本文适合于安装了Windows Vista SP1的Windows Server 2008和Windows Server 2008 R2。 关于IIS 5.1 and IIS 6.0 on Windows XP、 Windows Server 2003的设置方法请参考 (可能为英文)。对于设立在Windows XP和Windows Server 2003 IIS 5.1和IIS 6.0的说明,请参阅 (可能为英文)。
在IIS中启用FastCGI支持
在默认安装的IIS FastCGI模块被禁用。它基于对正在使用的Windows版本不同的步骤来启用。
为了使在Windows Vista SP1和Windows 7的FastCGI支持需要以下操作:
-
在Windows开始菜单选择“运行”,在对话框中输入“optionalfeatures.exe”,并点击“确定”;
-
在“Windows功能”对话框中,展开“Internet信息服务”,“万维网服务”,“应用程序开发功能”,然后启用“的CGI”复选框;
-
点击“确定”,等到安装完成。
如下图所示:
为了使在Windows Server 2008和Windows Server 2008 R2的FastCGI支持:
-
在Windows开始菜单选择“运行”,输入“CompMgmtLauncher”,并点击“确定”;
-
如果目前的“Web服务器(IIS)”的角色,是没有根据的“角色”节点,然后单击“添加角色”,它添加;
-
如果在“Web服务器(IIS)”的角色存在,然后单击“添加角色服务”,然后启用“应用开发”组的”CGI”复选框;
-
点击“下一步”,然后点击“安装”,并等待安装完成。
如下图所示:
配置IIS处理PHP请求
下载并安装PHP按照说明书中所述的 (可能为英文)。
注意 :
非线程安全的构建PHP的建议时,使用IIS。 非线程安全的版本是可在(可能为英文)。
配置在php.ini文件中的CGI和FastCGI具体设置如下所示:
例:在 php.ini中设置 CGI和FastCGI
- fastcgi.impersonate = 1fastcgi.impersonate = 1
- fastcgi.logging = 0 fastcgi.logging = 0
- cgi.fix_pathinfo=1 cgi.fix_pathinfo = 1
- cgi.force_redirect = 0 cgi.force_redirect= 0
无论是使用IIS管理器用户界面或命令行工具,配置PHP的IIS处理程序映射。
使用IIS管理器的用户界面,创建一个处理程序映射为PHP
按照这些步骤来创建一个PHP的IIS在IIS管理器用户界面处理程序映射:
- 在Windows开始菜单选择“运行”,型“INETMGR”,并点击“确定”;
- 在IIS管理器用户界面,选择“连接”的树视图中的服务器节点;
- 在“功能视图”页面,打开“处理器映射”功能;
- 在“操作”窗格中单击“添加模块映射......”;
- 在“添加模块映射”对话框,输入以下内容:
- 请求路径:* PHP。
- 模块:FastCgiModule
- 可执行文件:C:\ [PHP安装路径] \ php-cgi.exe文件
- 名称:PHP_via_FastCGI
如下图所示:
使用命令行工具来创建一个PHP的处理程序映射
使用如下所示的命令,以创建一个IIS FastCGI进程池,这将使用php-cgi.exe文件的可执行文件处理PHP请求。
更换FULLPATH php-cgi.exe文件的文件的绝对路径参数值。
例:创建IIS FastCGI进程池
- %windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
- /+[fullPath='c:\PHP\php-cgi.exe']
配置IIS处理PHP的具体要求,通过运行如下所示的命令。
更换scriptProcessor php-cgi.exe文件的文件的绝对路径参数值。
例:创建PHP请求的处理程序映射
- %windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
- /+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
- scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']
注:此命令为PHP文件扩展名创建一个IIS处理程序映射,这将导致对所有的URL结尾的PHP 交给FastCGI模块处理。