IIS 7.5 下PHP(FastCGI模式)配置手记
最近PHP又出了新版本5.3.1,趁着有空也更新到自己的机器上。
版本选择
PHP 5.3 For Windows有4个版本:
- VC9 x86 Non Thread Safe
- VC9 x86 Thread Safe
- VC6 x86 Non Thread Safe
- VC6 x86 Thread Safe
官网已经注明,VC9的版本是给IIS用的,VC6的版本是给Apache用的。之所以要这样区分,是因为VC9版本是用Visual Studio 2008编译的,编译器对程序进行了更多的优化,因而性能较好。至于Thead Safe(线程安全)/Non Thead Safe(非线程安全),官网并没有说明各自用途何在。Google了一番以后,我找到了答案:FastCGI是单线程执行的,因而不需要线程安全版本,去掉线程安全的防护后可以提高执行效率;而ISAPI方式则是多线程模式,所以需要采用线程安全版本。
之前尝试过安装5.3版本,可是一直运行出错,无奈之下只好退回5.2版。这回在官网发现了一句提示,说VC9版本需要先安装VC2008运行库(32位/64位)。上次应该就是漏了装这个东西。
配置php.ini
无论是在Linux还是Windows下安装,这都是不可忽略的一步。以下配置是必须的:
date.timezone = "Asia/Shanghai"
fastcgi.impersonate = 1
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
extension_dir = "./ext"
接下来根据自己需要启用对应的extension。
在IIS中添加PHP模块
首先确认IIS中启用了CGI功能:
打开IIS管理器后,选中左边目录树的最顶(这样可以使设置对所有站点都有效)。
首先点击“FastCGI 设置”,添加PHP为FastCGI应用程序,在新建对话框的路径文本框中选择PHP目录下的“php_cgi.exe”,其他设置按默认的就行;接着回到上级视图,打开“处理映射程序”,添加PHP的映射,配置如下图所示:
按“Win+R”调出运行对话框,输入“iisreset”重启IIS。至此,配置完成,无须拷贝文件、无须配置环境变量,一切就是这么简单。