天空小小岛技术网站
标题:
在 windows 2003 下安装 xcache 加快 Discuz! 论坛访问
[打印本页]
作者:
一粒米
时间:
2013-4-16 21:15
标题:
在 windows 2003 下安装 xcache 加快 Discuz! 论坛访问
xcache 安装前后对比
CPU从60%下降到20%
安装前页面执行时间:0.9s
安装后页面执行时间:0.08s
单纯页面执行时间看效果很明显,内存占用稍微多了些。
安装步骤:
一、下载对应 php 版本的 xcache:
http://xcache.lighttpd.net/pub/Releases/
不是找最新版本哈,一般是找和自己 php 版本接近的版本。
例如我的 php 版本是 5.2.8 下载的是这个版本
http://xcache.lighttpd.net/pub/R ... 5.2.5-nts-Win32.zip
二、安装 xcache
解压后找到 php_xcache.dll,将该文件放入到 php.ini 中 extension_dir 指定的目录下,一般是 php/ext/ 目录下
三、修改 php.ini 的设置
如果安装了 zend,搜索
[Zend]
复制代码
(一般在最下面)
在这行上面加
zend_extension_ts = "D:\server\php\ext\php_xcache.dll"
复制代码
其中的 D:\server\php\ext 是我的 php 的 ext 路径
如果没安装 zend,直接在最后面加刚才那句
然后在php.ini 的最后面加以下配置
[xcache.admin]
xcache.admin.enable_auth = off
xcache.admin.user = ""
xcache.admin.pass = ""
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 64M
xcache.count = 4
xcache.slots = 8K
xcache.ttl = 1800
xcache.gc_interval = 1800
xcache.var_size = 64M
xcache.var_count = 4
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.var_namespace_mode = 0
xcache.var_namespace = ""
xcache.readonly_protection = Off
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.coredump_type = 0
xcache.disable_on_crash = Off
xcache.experimental = Off
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
xcache.coverager = Off
xcache.coverager_autostart = On
xcache.coveragedump_directory = ""
复制代码
其中需要注意的是
xcache.size 和 xcache.var_size
xcache.count 和 xcache.var_count
xcache.slots 和 xcache.var_slots
设置成一样的
xcache.size 一般64M够用
xcache.count 为自己的CPU数
详细每项设置的说明,在安装包的 xcache-zh-gb2312.ini 文件
四、修改完 php.ini 后,保存,重启IIS
如果不想重启,或者说想先测试一下,在需要启用的站点对应的应用程序池上右键点回收
五、配置 Discuz! 的配置文件
打开 config/config_global.php
找到
$_config['memory']['xcache'] = '0';
复制代码
改成
$_config['memory']['xcache'] = '1';
复制代码
问题解答:
1、用 zend_extension_ts 而不用 extension 主要是因为用 extension 的方式引入可能会出现错误
2、把 zend_extension_ts 放在 [Zend] 前,是为了防止出现
Fatal error: [Zend Optimizer] Zend Optimizer *** is incompatible with XCache 1.2.2
复制代码
这种错误
3、 zend_extension_ts 使用了绝对路径,是为了防止出现意外错误。
配置中文解释
;; 本文件只是例子, 请在 php.ini 里设置以便生效
[xcache-common]
;; 安装成 zend extension (推荐), 路径一般是 "$extension_dir/xcache.so"
zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
;; Windows 系统例子:
zend_extension_ts = c:/php/extensions/php_xcache.dll
;; 或者您也可把 XCache 安装成 extension, 注意确保您的 extension_dir 设置正确, 并把 xcache.so 或者 php_xcache.dll 放到该目录里面
; extension = xcache.so
;; 或者 Win32 系统:
; extension = php_xcache.dll
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($您的密码)
xcache.admin.pass = ""
[xcache]
; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明
; select low level shm/allocator scheme implemenation
xcache.shm_scheme = "mmap"
; 禁用: xcache.size=0
; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
xcache.size = 0M
; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量)
xcache.slots = 8K
; 缓存项目的 ttl, 0=永久
xcache.ttl = 0
; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位
xcache.gc_interval = 0
; 同上, 只是针对变量缓存设置
xcache.var_size = 0M
xcache.var_count = 1
xcache.var_slots = 8K
; 默认, 允许 ini_set()
xcache.var_ttl = 0
; 最大ttl值
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
; 仅测试用
xcache.test = Off
; /dev/zero 时无效
xcache.readonly_protection = Off
; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建).
; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache"
; 2 个 php 组不会共享同一个 /tmp/xcache
; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突
xcache.mmap_path = "/dev/zero"
; 仅用于 *nix 系统
; 设置为空(禁用) 或者类似 "/tmp/phpcore/"
; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关)
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off
xcache.coverager = Off
; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)
; 依赖于 xcache.coverager=On
xcache.coveragedump_directory = ""
复制代码
欢迎光临 天空小小岛技术网站 (http://tkxxd.net/)
Powered by Discuz! X3.1