XCache缓存加速在Win2003 + IIS6下的完整配置方法与疑难解答
介绍
XCache是一种新兴的php缓存器,主要为WIN环境下IIS开发,经过本人测试,在Windows下效果比同类软件强很多。 同类PHP缓存加速器软件eaccelerator在LINUX下表现出色,但是在IIS环境下就动不动出现内存出错,所以如果服务器是IIS的,建议使用XCACHE
实际测试效果如下(非科学方法):
原网页平均执行时间: 0.13 秒
加速后网页平均执行时间: 0.03秒
原CPU占用率: 15% - 60%
加速后CPU占用率: 3% - 30%
可以看出,使用这个加速器可以很大程度的降低CPU占用(但会造成更多的内存占用),并使网页执行时间缩短。具体原理不介绍了,网上有很多。
由于其他同类软件对Windows的支持不够好,所以选用XCache。
网上很多说明都不够详细,所以给大家写一篇。
安装与配置
首先下载XCache,网址为:
http://xcache.lighttpd.net/wiki/Release-1.2.2
目前稳定版为1.2.2,另外最新版为2.0.x,但是仍在测试中,不建议使用
需要下载跟你php版本匹配的binaries for Windows ,我的是下载XCache-1.2.2-php-5.2.5-Win32,NTS那个版本不知道做什么用的,未测试
下载后解压,把php_xcache.dll放在php.ini中指定extension_dir中。
下面开始配置,打开php.ini。
添加
zend_extension_ts = "($extension_dir)\php_xcache.dll"
(为什么不用extension,因为这个发行版的xcache的接口是ZEND_API,直接用extension无法初始化,($extension_dir)请改成你的PHP的EXT所在目录。比如我的是e:\php\ext\php_xcache.dll)
继续在下面一行添加
[xcache.admin]
xcache.admin.enable_auth = Off
xcache.admin.user = "username"
xcache.admin.pass = "1"
[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.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可以开启。
至此配置完毕,重新启动IIS即可。 然后写个phpinfo();检测一下XCACHE是否运行
<?php
phpinfo();
?>
疑难解答
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"
- 最新评论
