微软新推出了配合FastCGI模式使用的WinCache扩展,这是一个可以显著增加PHP应用">在Windows环境下使用速度的PHP加速器。所有的PHP应用都能够利用这个扩展所提供的加速功能而不需要修改任何代码。所有需要做的就是将这个扩展激活并被PHP引擎读取。与eAccelerator正好相反的是WinCache要求使用NTS(非线程安全)版本的PHP,因此更适合与FastCGI配合使用。
WinCache扩展包括了三种不同种类的缓存使用,下面将要分别介绍这三种缓存和他们所能提供的便利。
•PHP操作码缓存
PHP是一个脚本运行引擎,他读入包含文字和PHP指令的输入数据流,再输出另一个通常是HTML格式的数据流。这就是说在一个服务器上,每当网络用户需要,PHP引擎就会读入、解析、编码和执行某个脚本。而这种读入、解析和编码会给服务器的CPU和文件系统增加额外的负担,因此会影响到PHP脚本的整体运行。PHP操作码缓存就是用来把编码后的脚本字节码储存在内存中从而能让PHP引擎在后来对同一脚本的操作中重复使用。
•文件缓存
除了使用操作码缓存,PHP引擎还需要从文件系统里读取脚本文件。当PHP脚本储存在一个远程的UNC(统一命名约定)文件共享中,文件操作会出现一个显著的动作。Windows缓存扩展包括了一个文件缓存来在内存中储存PHP脚本文件的内容,这样就减少了PHP引擎的文件操作数量。
•相对路径缓存
PHP脚本经常会引用或使用通过相对路径访问的文件。而每一个相对路径都必须被PHP引擎转化成绝对路径才能够使用。当一个PHP应用通过相对路径访问很多的PHP文件,将相对路径转化成绝对路径的工作就会对应用的运行产生消极影响。Windows缓存扩展提供了专门针对相对路径的缓存,可以将相对路径到绝对路径的转换地图储存起来,从而减少了相对路径的总转化量。
安装方法:
这个扩展有两个安装包:一个是针对5.2.X 版本的PHP,另一个是针对PHP 5.3.X。
1. 打开适合你的PHP版本的安装包
2. 将php_wincache.dll文件复制到PHP扩展的文件夹。通常这个文件夹叫做“ext”,和所有的PHP二进制文件在一个文件夹下。比如:
“C:\Program Files\PHP\ext”
3. 用文本编辑器打开php.ini文件,位置同上。比如:
“C:\Program Files\PHP\php.ini”
4. 在上面这个文件的最后加上这么一行:
Extension=php_wincache.dll
5. 保存并关闭php.ini。
6. 将你的服务器的应用库重启以读取配置的变化。
配置要求:
此扩展只能在以下的配置上运行:
Windows 版本:
• Windows XP SP3 with IIS 5.1 and FastCGI Extension
• Windows Server 2003 with IIS 6.0 and FastCGI Extension
• Windows Vista SP1 with IIS 7.0 and FastCGI Module
• Windows Server 2008 with IIS 7.0 and FastCGI Module
• Windows 7 with IIS 7 and FastCGI Module
• Windows Server 2008 R2 with IIS 7.0 and FastCGI Module
PHP版本:
• PHP 5.2.X, Non-thread-safe build
• PHP 5.3 X86, Non-thread-safe VC9 build
注意:此扩展只能在服务器通过FastCGI运行PHP的情况下使用,PHP的版本必须是NTS(非线程安全)的。
可以从官方网页http://www.iis.net/extensions/WinCacheForPHP下载Wincache。