天空小小岛技术论坛

 找回密码
 注册
搜索
查看: 12937|回复: 0
打印 上一主题 下一主题

在 windows 2003 下安装 xcache 加快 Discuz! 论坛访问

[复制链接]
跳转到指定楼层
1#
一粒米 发表于 2013-4-16 21:15:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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,搜索
  1. [Zend]
复制代码
(一般在最下面)
在这行上面加
  1. zend_extension_ts = "D:\server\php\ext\php_xcache.dll"
复制代码
其中的 D:\server\php\ext 是我的 php 的 ext 路径
如果没安装 zend,直接在最后面加刚才那句

然后在php.ini 的最后面加以下配置
  1. [xcache.admin]
  2. xcache.admin.enable_auth = off
  3. xcache.admin.user = ""
  4. xcache.admin.pass = ""

  5. [xcache]
  6. xcache.shm_scheme =        "mmap"
  7. xcache.size  =               64M
  8. xcache.count =                 4
  9. xcache.slots =                8K
  10. xcache.ttl   =                 1800
  11. xcache.gc_interval =           1800

  12. xcache.var_size  =            64M
  13. xcache.var_count =             4
  14. xcache.var_slots =            8K
  15. xcache.var_ttl   =             0
  16. xcache.var_maxttl   =          0
  17. xcache.var_gc_interval =     300

  18. xcache.var_namespace_mode =    0
  19. xcache.var_namespace =        ""

  20. xcache.readonly_protection = Off
  21. xcache.mmap_path =    "/tmp/xcache"


  22. xcache.coredump_directory =   ""
  23. xcache.coredump_type =         0

  24. xcache.disable_on_crash =    Off

  25. xcache.experimental =        Off

  26. xcache.cacher =               On
  27. xcache.stat   =               On
  28. xcache.optimizer =           Off

  29. [xcache.coverager]
  30. xcache.coverager =           Off
  31. xcache.coverager_autostart =  On

  32. 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
找到
  1. $_config['memory']['xcache'] = '0';
复制代码
改成
  1. $_config['memory']['xcache'] = '1';
复制代码
问题解答:

1、用 zend_extension_ts 而不用 extension 主要是因为用 extension 的方式引入可能会出现错误
2、把 zend_extension_ts 放在 [Zend] 前,是为了防止出现
  1. Fatal error: [Zend Optimizer] Zend Optimizer *** is incompatible with XCache 1.2.2
复制代码
这种错误
3、 zend_extension_ts 使用了绝对路径,是为了防止出现意外错误。

配置中文解释
  1. ;; 本文件只是例子, 请在 php.ini 里设置以便生效
  2. [xcache-common]
  3. ;; 安装成 zend extension (推荐), 路径一般是 "$extension_dir/xcache.so"
  4. zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
  5. ;; Windows 系统例子:
  6. zend_extension_ts = c:/php/extensions/php_xcache.dll
  7. ;; 或者您也可把 XCache 安装成 extension, 注意确保您的 extension_dir 设置正确, 并把 xcache.so 或者 php_xcache.dll 放到该目录里面
  8. ; extension = xcache.so
  9. ;; 或者 Win32 系统:
  10. ; extension = php_xcache.dll

  11. [xcache.admin]
  12. xcache.admin.enable_auth = On
  13. xcache.admin.user = "mOo"
  14. ; xcache.admin.pass = md5($您的密码)
  15. xcache.admin.pass = ""

  16. [xcache]
  17. ; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明

  18. ; select low level shm/allocator scheme implemenation
  19. xcache.shm_scheme =        "mmap"
  20. ; 禁用: xcache.size=0
  21. ; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
  22. xcache.size  =                0M
  23. ; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
  24. xcache.count =                 1
  25. ; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量)
  26. xcache.slots =                8K
  27. ; 缓存项目的 ttl, 0=永久
  28. xcache.ttl   =                 0
  29. ; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位
  30. xcache.gc_interval =           0

  31. ; 同上, 只是针对变量缓存设置
  32. xcache.var_size  =            0M
  33. xcache.var_count =             1
  34. xcache.var_slots =            8K
  35. ; 默认, 允许 ini_set()
  36. xcache.var_ttl   =             0
  37. ; 最大ttl值
  38. xcache.var_maxttl   =          0
  39. xcache.var_gc_interval =     300

  40. ; 仅测试用
  41. xcache.test =                Off
  42. ; /dev/zero 时无效
  43. xcache.readonly_protection = Off
  44. ; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建).
  45. ; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache"
  46. ; 2 个 php 组不会共享同一个 /tmp/xcache
  47. ; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突
  48. xcache.mmap_path =    "/dev/zero"


  49. ; 仅用于 *nix 系统
  50. ; 设置为空(禁用) 或者类似 "/tmp/phpcore/"
  51. ; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关)
  52. xcache.coredump_directory =   ""

  53. xcache.cacher =               On
  54. xcache.stat   =               On
  55. xcache.optimizer =           Off

  56. [xcache.coverager]

  57. ; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off
  58. xcache.coverager =          Off

  59. ; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)
  60. ; 依赖于 xcache.coverager=On
  61. xcache.coveragedump_directory = ""
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|天空小小岛  |京ICP备2025130156号|

GMT+8, 2025-6-22 04:04 , Processed in 0.098345 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表