评论

收藏

[IIS] XCache在Win2003 IIS6下的成功配置方法与疑难解答

web服务器 web服务器 发布于:2021-11-03 20:40 | 阅读数:537 | 评论:0

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

实际测试效果如下(非科学方法):
原网页平均执行时间: 0.13 秒
加速后网页平均执行时间: 0.03秒
原CPU占用率: 15% - 60%
加速后CPU占用率: 3% - 30%


由上数据可以看出,使用这个加速器可以很大程度的降低CPU占用(但会造成更多的内存占用),并使网页执行时间缩短。

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

网上很多说明都不够详细,所以给大家写一篇。

安装与配置

首先下载XCache,网址为:
下载地址:https://xcache.lighttpd.net/wiki/Release-1.2.2

需要下载跟你php版本匹配的binaries for Windows。

下载后解压,把php_xcache.dll放在php.ini中指定extension_dir中

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

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

本人配置的时候,把($extension_dir)替换成绝对路径才行的。

(为什么不用extension,一会再说)

添加

[xcache.admin]
xcache.admin.enable_auth = Off
xcache.admin.user = "UserName"
xcache.admin.pass = "PassWord"
[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目录中,可以自由处理)
xcache.admin.userXCache后台登陆用户名
xcache.admin.passXCache后台登陆密码
xcache.sizeXCache的内存缓存大小,普通网站建议设置为64MB,如果是IDC服务器,可以设置成256MB
xcache.count设置为CPU的数量(双核算2个,比如我的是两个双核Xeon 3.0,就设置为4)
xcache.var_size
xcache.var_count 跟上两条一样
xcache.mmap_path共享内存标识名,尽量用xcache,避免跟其它软件冲突
xcache.optimizer优化器,如果没安装Zend可以开启。

至此配置完毕,重新启动IIS即可。

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

疑难解答

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="C:\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"

4、有待补充
由于XCache官方很长时间没有更新,最近很多朋友开始用Memcache,大家可以参考下。
关注下面的标签,发现更多相似文章