Csuper Blog

Csuper Blog

Win2003 + IIS6下安装XCache加速php的完整配置方法
2010-12-16

XCache是一种新的php缓存器,经过测试,在Windows下效果比同类软件强很多。

实际测试效果如下(非科学方法):

原网页平均执行时间:0.13 秒
加速后网页平均执行时间:0.03秒
原CPU占用率:15% - 60%
加速后CPU占用率:3% - 30%

可以看出,使用这个加速器可以很大程度的降低CPU占用(但会造成更多的内存占用),并使网页执行时间缩短。具体原理不介绍了,网上有很多。

由于其他同类软件对Windows的支持不够好,所以选用XCache是Windows主机的不二之选。

解压Xcache,把php_xcache.dll放在php.ini中指定extension_dir中(本例为"D:\php\ext)。

下面开始配置,打开php.ini。

添加(记得是添加,不要更换原来的zend_extension_ts参数)
zend_extension_ts = "($extension_dir)\php_xcache.dll"

如果没有配置环境变量,需要把($extension_dir)替换成绝对路径。

添加以下项到php.ini末尾,可以直接复制以下配置...

[xcache.admin]
xcache.admin.enable_auth = Off
xcache.admin.user = "Cnitpub"
xcache.admin.pass = "Cnitpub"
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 64M
xcache.count = 4
xcache.slots = 64K
xcache.ttl = 1800
xcache.gc_interval = 1800
xcache.var_size = 8M
xcache.var_count = 4
xcache.var_slots = 64K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = "xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = Off
xcache.optimizer = Off
[xcache.coverager]
xcache.coverager = Off
xcache.coveragedump_directory = ""

需要修改的值已经用蓝色标出,说明如下:

xcache.admin.enable_auth  XCache后台是否需要验证(这个后台在刚才下载的XCache的admin目录中,可以自由处理,如不需要请设置成Off)
xcache.admin.user XCache后台登陆用户名
xcache.admin.pass XCache后台登陆密码
xcache.size   XCache的内存缓存大小,普通网站建议设置为64MB,如果是IDC服务器,可以设置成256MB
xcache.count  设置为CPU的数量(双核算2个,比如我的是两个双核Xeon 3.0,就设置为4)
xcache.var_size
xcache.var_count  跟上两条一样
xcache.mmap_path  共享内存标识名,尽量用xcache,避免跟其它软件冲突
xcache.optimizer  优化器,如果没安装Zend可以开启,如果已经安装好Zend了,设置成Off

至此配置完毕,重新启动IIS即可。然后再次打开info.php,查找"XCache",如果找到相关XCache的信息,那代表配置正确。

如果查找不到,请尝试以下疑难解答中的第三点。

至于为什么不用extension,而用zend_extension_ts,因为这个发行版的xcache的接口是ZEND_API,直接用 extension无法初始化。

XCache疑难解答:

1.phpinfo()中显示没有加载php_xcache.dll
   检查php_xcache.dll的NTFS权限是否正确,需要给网站用户(或者可以用Guests)只读权限。

2.出现php内存错误
   使用了extension调用php_xcache.dll,请尝试使用zend_extension_ts。

3.打开网页没有响应,出现错误 Fatal error: [Zend Optimizer] Zend Optimizer *** is incompatible with XCache 1.2.2
   这是因为安装了Zend导致,解决方法很简单,把调用php_xcache.dll的zend_extension_ts提到调用zend的前面。如:
    zend_extension_manager.optimizer_ts="D:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
    zend_extension_ts="C:\php\ext\php_xcache.dll"
    zend_extension_ts="C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"

到此,XCache缓存器配置完毕。

官方下载:http://xcache.lighttpd.net/wiki/Release-1.3.0

 

发表评论: