ZendOptimizer不支持php5.3、不支持Windouws下非线程安全PHPFastCGI
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非
线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。
从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由
于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果
在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。
一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个
问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就
会出错搞垮IIS。因此在IIS下CGI模式才是PHP运行的最安全方式,但CGI模式对于每个HTTP请求都
需要重新加载和卸载整个PHP环境,其消耗是巨大的。 为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重
复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决
了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。
因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用
FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)
的版本能够更好的提高效率。
win2008 R2+IIS7.5+PHP5.2+Mysql+Zend+Xcache
此组合版本分别是: Php-5.2.17-win32-vc6-x86.zip PHP请注意是线程安全版本 mysql-essential-5.0.91-winx64.msi ZendOptimizer3.3.3-windows x86 Xcache1.3 for XCache-1.3.0-php-5.2.17-Win32-VC6-x86.zip
此组合可以完美运行当今主流的PHP系统,但是美中不足的是使用PHP线程安全版本无法加载wincache,很遗憾的一点!但是可以用xcache作为补充,但是相比PHP-ISAPI模式已经好多了!
1、IIS7.5 管理器主界面
2、配置ISAPI筛选器
打开站点的ISAPI筛选器,添加一个筛选器.
筛选器名称为php,可执行文件路径为F:phpphp5isapi.dll
3、配置处理程序映射
添加脚本映射
请求路径为*.php,可执行文件路径为F:phpphp5isapi.dll,名称为php
4、配置应用程序池
添加应用程序池
名称为php, .NET Framework版本选”无托管代码”,托管通道模式选”经典”
5、更改站点应用池
选择应用程序池为刚刚所建立的php应用池
6、测试 ZendOptimizer是否安装成功 现在IIS7.5+PHP5.2+Mysql+Zend 配置工作已经完成,如果不出意外的话,那么现在您的 IIS 7.5 就可 以支持以上环境了,请使用 PHP 探针程序或者 PHPINFO.PHP 查看支持信息,如果包含了 Zend Optimizer 支持信息说明配置成功。如果能看到如下信息就行了
7、修改php.ini配置文件,在最后一行添加如下配置参数 [Zend]
zend_optimizer.optimization_level=1023
zend_optimizer.encoder_loader=0
zend_extension_ts="C:Program FilesZendlibZendOptimizer.dll"
现在我们来介绍下上边这个配置文件的含义:
zend_optimizer.optimization_level 《== 优化程度,这里定义启动多少个优化过程。
zend_optimizer.encoder_loader 《== 是否允许处理由Zend Encoder加密的PHP文件。
zend_extension_ts 《== 优化器所在目录。
|