导读:本文主要是介绍在 Win2008 的
IIS7
中配置和使用 PHP 的相关问题。注意,本文是针对 Win2008 全新的讲解,力求使用上的完美和配置上的简捷。
先推荐下载个视频(虽然是英文的,但是也可以先大致浏览了解一下):
http://wallpaper.iis7.org/videos/php-fastCGI.wmv
重点:从以上视频可以了解到,在 Win2008 的
IIS7
中,对 PHP 支持的最大改进有两点:1、FastCGI;2、Output Caching(输出缓存)。所以以下着重介绍用 FastCGI 支持 PHP 的方式,而 ISAPI 支持方式应该和以前版本的 IIS 大同小异,不再赘述。
需要下载的相关程序(全部为免费程序,找不到的话就别做网站了)
1、PHP 5.x.x For Win 版本(推荐使用免安装的压缩版本);
2、MySQL 5.x For Win 版本;
3、phpmyadmin 最新版;
4、ZendOptimizer 最新版。
安装、配置下载的程序
0、在 Win2008 中添加角色:打开“服务器管理器”,在“Web 服务器中”别忘了添加“CGI”。如果没有添加,接下来是没有“FastCGI”选项的;
1、为 PHP 应用配置“FastCGI”:打开“IIS 管理器”,双击某个网站(或虚拟目录、应用程序),双击“处理程序映射”,然后从右边选择“添加模块映射”,“请求路径”填写“*.php”,“模块”选择“FastCgiModule”,“可执行文件”选择你 PHP 所在的目录中的“php-cgi.exe”(比如 D:phpphp-cgi.exe),“名称”就叫“php”好了。以下是配置说明:
(1)将“PHP.INI-dist”拷贝在同目录中,名为“PHP.INI”(不建议使用“php.ini-recommended”拷贝,因为安全性较高,容易出问题);
(2)编辑“PHP.INI”,主要是修改以下关键配置的设置(注意,如果没有某个关键词,就自己创建;“d:php”假设为 PHP 所在目录。):
register_long_arrays = on
extension_dir = "d:phpext"
cgi.force_redirect = 0
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_mysql.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
session.save_path = "d:phptmp"
(3)特别说明:以上关键配置的设置是经过本人实战验证的,和目前网上流传的 PHP 配置说明主要不同之处在于:根本无需将任何一个文件拷贝来拷贝去。而且,进行以上配置后,对 MySQL 和 phpmyadmin 都已经完美支持了。
2、PHP 程序目前已经可以正常运行了,接下来安装 MySQL。安装后,你会发现无法继续进行配置(也许后续版本会解决此问题),这时候时需要修改“MySQLInstanceConfig.exe”(推荐使用“Resource Hacker”工具),找到 24-1-1033,将“asAdministrator”改成“requireAdministrator”,然后就可以从开始菜单运行 MySQL 的配置了。
(1)MySQL 的具体配置可以参考网上的帖子,并没有针对 Win2008 的特别注意事项,不再赘述;
(2)在这里单独说一下“Strict Mode”,如果某些程序运行中出现“mysql error number: 1366”,则可以关闭这个参数再试试看,也许能解决此问题。
(3)MySQL 的语法使用也不介绍了,只说一个小技巧:如何解决导入超大 SQL 数据库时超时的问题?
执行:mysql -u root -p【password】 -h localhost 【yourdb】
3、该安装 phpmyadmin 了,实际上无需安装(只是个 PHP 的应用程序而已,解压缩到你的 Web 目录下即可),而且有些人认为这个功能太弱,喜欢用其它类似产品。不过由于它的通用性,还是讲解一下吧:需要修改“librariesconfig.default.php”的两个地方:
(1)把 $cfg['blowfish_secret'] = ''; 更改为 $cfg['blowfish_secret'] = '加密私钥';
(2)把 $cfg['Servers'][$i]['auth_type'] = 'config'; 更改为 $cfg['Servers'][$i]['auth_type'] = 'cookie';
4、安装 ZendOptimizer(千万不要以为 FastCGI 方式不需要安装这个):
(1)最新版的 ZendOptimizer 在安装时可以识别
IIS7
;
(2)如果重装系统,ZendOptimizer 可以不用重新安装(当然,前提是 ZendOptimizer 没有安装在 C 盘)。
一直没有时间总结,写的很累啊……不足之处,欢迎指点!
本人使用以上方法在 Win2008 中应用 PHP 程序已有一个多月了,暂时没发现什么问题。另外,关于“输出缓存”的配置技巧希望大家能够补充一下。