参考文档:
Using FastCGI to Host PHP Applications on IIS 7.0
一、PHP的安装
1、下载并安装程序
PHP 5.2.8 Non-thread-safe zip package
Administration Pack for IIS 7.0
2、配置php.ini
把C:\PHP\php.ini-recommended 复制成php.ini,然后修改文件:
fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
open_basedir ="G:\Projects_PHP"
extension_dir = "c:\php\ext" ;extension_dir = "./"
extension=php_mssql.dll
extension=php_mysql.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_mysql.dll
其中open_basedir表示网站所在的包含目录,你也可以指定为"G:\",这样只要在G盘下的网站都可以在安全范围之内
#为了使用session需要添加设置 session.save_path = "c:\php\tmp" 并创建目录tmp
#extension_dir = "c:\php\ext"
3、配置IIS
IIS根-->Handler Mappings-->
Request path: *.php
Module: FastCgiModule
Executable: "C:\PHP\php-cgi.exe"
Name: PHP via FastCGI
IIS根-->FastCGI settings-->Edit... --> Edit FastCGI application-->instanceMaxRequest=10000
--> EnvironmentVariables --> PHP_FCGI_MAX_REQUESTS=10000
4、推荐的安全配置(仅供参考)
allow_url_fopen=Off
allow_url_include=Off
register_globals=Off
open_basedir="c:"inetpub""
safe_mode=Off
safe_mode_gid=Off
max_execution_time=30
max_input_time=60
memory_limit=16M
upload_max_filesize=2M
post_max_size=8M
max_input_nesting_levels=64
display_errors=Off
log_errors=On
error_log="C:"path"of"your"choice"
fastcgi.logging=0
expose_php=Off
5、独立配置
参考:http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70/
中的"Per-site PHP process pools"和"Specifying php.ini location"
A、IIS根-->FastCGI Settings-->Add Appliction....-->fullPath="C:\PHP\php-cgi.exe"
arguments="-d open_basedir=G:\Projects_PHP\Samples\PHP_Hello2"
查看:C:\windows\system32\inetsrv\config\applicationHost.config可见有如下配置:
instanceMaxRequests="200" protocol="NamedPipe" queueLength="1000" flushNamedPipe="false"
rapidFailsPerMinute="10" />
</fastCgi>
B、修改网站的web.config
6、配置环境变量
例如安装目录在c:\php
配置Path的变量添加C:\PHP\;
7、安装URL Rewrite Module
参考:URL Rewrite Module Using URL Rewrite Module URL Rewrite Module Configuration Reference