找回密码
 注册
首页 ≡≡网络技术≡≡ 服务器 IIS7.5上用fastcgi方式配置手工PHP环境

IIS7.5上用fastcgi方式配置手工PHP环境

灰儿 2011-9-18 21:04:30
本帖最后由 灰儿 于 2011-12-1 14:32 编辑

我们知道php配置有几种:
1、CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。
特点是:稳定,但效率太低。

2、ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。
特点是:多线程,效率较高,但不够稳定。

3、FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。
特点是:高效率,高稳定性,属于将来发展趋势。

windows 2008 R2 下面IIS7.5已经对fastcgi的支持有了很大改进,PHP 5.3发布的Windows版已经不支持ISAPI模式了,因为FastCGI大大加强了IIS处理PHP的能力,能迅速提高PHP站点的反应速度和生产力,并具有更高的稳定性和安全性,我们不建议朋友们再使用PHP-ISAPi模式。

本次环境搭建所有版本均经过多次测试保证无误!鉴于目前php5.3.1还不能完美的支持主流php系统,不建议大家使用!

windows2008 R2下面环境搭建分两种情况 大家可以根据自己的运行需要选择!
1 IIS7.5+PHP+Mysql+Wincache 1.0RC
这个环境组合大家已经看出来了 没有zend,
各个版本分别是:
PHP5.2.17--请注意是非线程安全(Non Thead Safe)版本 PHP 5.2.17 Non-thread-safe zip package,
MYSQL5.0 x64,
Wincache1.0rc for5.2,这个大家可以去微软IIS官方下载,他将极大地提高您的系统运行效率!
如果您的服务器运行的都是开源程序,不需要zend,强烈建议您使用这个配置!

2 IIS7.5+PHP+Mysql+Zend+Xcache
此组合版本分别是
PHP5.2.17 请注意是线程安全(Thead Safe)版本:PHP 5.2.17 zip package
MYSQL5.0 x64,
ZendOptimizer3.3.3-windows x86
Xcache1.3 for XCache-1.3.0-php-5.2.10-Win32-VC6-x86.zip
此组合可以完美运行当今主流的PHP系统,但是美中不足的是使用PHP线程安全版本无法加载wincache,很遗憾的一点!但是可以用xcache作为补充,但是相比PHP-ISAPI模式已经好多了!
-------------------------------------------------------------------------------------------------------------------------------------------
PHP现在推出5.3.8版本了,不过下载的时候有几个不同版本选择。那就是VC6 X86和VC9 X86。
首先我来解答:
VC6是什么?
VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
VC9是什么?
VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。
那我们如何选择下载哪个版本的PHP呢?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9版本;
那Non Thread Safe是什么?
Non Thread Safe就是非线程安全;
Thread Safe 是什么?
Thread Safe 是线程安全;
---------------------------------------------------------------------------------------------------------------------------------------------
本想在linux下搭建php平台的,看到PHP在IIS7.5下以FastCGI模式跑起来性能更高些,正好Windows平台也比Linux熟悉的多,于是就在Windows2008 R2下搭建PHP平台。下面是安装与配置过程:

一、安装IIS7.5
安装的时候 要注意三个地方打得勾
2011062801.jpg
注: CGI 会在IIS7+PHP_5.3.5的环境中用到
ISAPI扩展和ISAPI筛选器 用在IIS7+PHP_5.2.17

二、安装PHP
1.下载PHP5.3.8或PHP5.2.17,因为要安装Wincache,所以下载的是VC9 x86 Non Thread Safe ZIP版http://windows.php.net/downloads/releases/

解压到C:PHP下。

注意:
官网已经注明,VC9的版本是给IIS用的,VC6的版本是给Apache用的。之所以要这样区分,是因为VC9版本是用Visual Studio 2008编译的,编译器对程序进行了更多的优化,因而性能较好。至于Thead Safe(线程安全)/Non Thead Safe(非线程安全),官网并没有说明各自用途何在。Google了一番以后,我找到了答案:FastCGI是单线程执行的,因而不需要线程安全版本,去掉线程安全的防护后可以提高执行效率;而ISAPI方式则是多线程模式,所以需要采用线程安全版本。

说明:
下载的php是x86版,而Win2008 R2是64位系统,应该用x64版,但PHP官方不提供x64版,就用的x86版,不行再换。php 5.3的VC9版本需要先安装VC2008运行库(32位/64位)。

2.然后找到php安装目录下的php.ini-production或php.ini-recommended,将其改名为php.ini,用记事本打开,按照如下参数配置,然后保存并关闭。


  1. extension_dir = “D:phpext”
  2. cgi.force_redirect = 0
  3. fastcgi.impersonate = 1;
  4. extension=php_gd2.dll
  5. extension=php_mbstring.dll
  6. extension=php_mysql.dll
  7. extension=php_mysqli.dll
  8. extension=php_pdo_mysql.dll
  9. extension=php_pdo_odbc.dll
  10. session.save_path=”D:phpsession”
  11. error_log=”D:phperrorsphp-errors.log”
复制代码

3.打开IIS管理器后,选中左边目录树的最顶(这样可以使设置对所有站点都有效)。
首先点击“FastCGI 设置”,添加PHP为FastCGI应用程序,在新建对话框的路径文本框中选择PHP目录下的“php_cgi.exe”,
再将“实例最大请求数”改为10000,
添加文件监视和环境变量:PHP_FCGI_MAX_REQUESTS,取值设置为10000:
添加对php.ini的文件监视,可以在修改php配置之后无需重启IIS而让更改生效!

05.JPG

01.jpg

接着回到上级视图,在右边功能视图内双击“处理程序映射”-》“添加模块映射”,请求路径为*.php,模块为FastCgiModule,可执行文件为PHP目录中的php-cgi.exe,名字为FastCGI-PHP。配置如下图所示:
3.jpg

按“Win+R”调出运行对话框,输入“iisreset”重启IIS。

4.重启IIS后,在新建的php网站中新建文件 phpinfo.php ,内容只有一行如下:
然后打开浏览器,输入http://localhost/phpinfo.php

三、安装MySQL
下载MySQL for Windows 5.1.48 x64安装包,安装完成后按配置向导做好配置。

特别说明:在PHP连接数据库时必须要用127.0.0.1,而不能用localhost,即便在hosts文件里做了映射也不行,在此我误了N久,而用PHP5.2.x就没有这个问题。

四、安装Wincache
Wincache是一个Windows环境下使用的PHP加速器,据称性能要好于Zend Optimizer。
下载针对PHP5.3版本的Winchche,地址http://sourceforge.net/projects/wincache/files/
解压到任意文件夹,将其中的php_wincache.dll复制到C:PHPext 这个目录下,然后编辑php.ini文件,找到;extension=php_zip.dll这行,在这行下面添加一行:extension=php_wincache.dll,保存退出。重启IIS,安装完成。

本帖被以下淘专辑推荐:

您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。