Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] Discuz X2.5完美支持WinCache的方法分享

[复制链接]
gai001.com 发表于 2012-7-31 11:00:38 | 显示全部楼层 |阅读模式
本帖最后由 gai001.com 于 2012-7-31 21:36 编辑

  WinCache是微软在IIS平台下发布的优秀的PHP加速器,Windows平台下其稳定性和性能提升比同类软件(xCache、Memcache、eAccelerator、APC等等)都好,能极大的改善PHP程序在Windows平台下的性能。
  Discuz一直以来就不支持WinCache,感觉比较遗憾,不过还好,Discuz的扩展部分做的不错,能很容易的把WinCache支持部分快速增加上。下面就是第一改装网(gai001.com)技术团队修改的X2.5,能较好的支持WinCache,在这里跟大家分享一下。

20120731 21:35补充说明:
目前的WinCache不是正式版,只是开发版本,有时候会出500服务器错误,所以,请不要用于产品服务。


使用程序说明:
1、Discuz X2.5 20120701版本;
2、服务器程序版本:IIS7.5+PHP5.4.5 NTS;
3、WinCache 1.3.4 for PHP 5.4.X
已经上传到115,下载地址为:
http://115.com/file/e7k73ves#
[gai001.com]_wincache-1.3.4-dev-5.4-nts-vc9-x86.exe
修改文件内容:
1、\source\class\discuz\discuz_memory.php (修改)
  1. $this->extension['eaccelerator'] = function_exists('eaccelerator_get');
  2. //下面这句是新增的,主要是判断wincache是否已经配置成功,并且运行正常;
  3. $this->extension['wincache'] = function_exists('wincache_ucache_get');
复制代码
这里, 'wincache' 是为了创建wincache的实现类;
  1. foreach(array('apc', 'eaccelerator', 'xcache', 'wincache') as $cache) {
  2.                         if(!is_object($this->memory) && $this->extension[$cache] && $this->config[$cache]) {
  3.                                 $class_name = 'memory_driver_'.$cache;
  4.                                 $this->memory = new $class_name();
  5.                                 $this->memory->init(null);
  6.                         }
  7.                 }
复制代码
2、\source\admincp\admincp_setting.php (修改)
  1. $ea = array('eAccelerator',
  2.     $cache_extension['eaccelerator'] ? cplang('setting_memory_php_enable') : cplang('setting_memory_php_disable'),
  3.     $cache_config['eaccelerator'] ? cplang('open') : cplang('closed'),
  4.     $cache_type == 'eaccelerator' ? $do_clear_link : '--'
  5. );
  6. //下面这句是新增的,主要是为了在后台内存优化管理页面,显示wincache相关的配置信息和数据
  7. //这里是把数据保存到数组里面;
  8. $wincache = array('WinCache',
  9.     $cache_extension['wincache'] ? cplang('setting_memory_php_enable') : cplang('setting_memory_php_disable'),
  10.     $cache_config['wincache'] ? cplang('open') : cplang('closed'),
  11.     $cache_type== 'wincache' ? $do_clear_link : '--'
  12. );
复制代码
  1. showtablerow('', '', $ea);
  2. //下面这句是新增的,主要是把wincache的配置信息和数据显示出来;
  3. showtablerow('', '', $wincache);
复制代码
3、\source\class\memory\memory_driver_wincache.php(新增)
  1. <?php

  2. /**
  3. *      WinCache Interface for Discuz X2.5 (IIS Platform)
  4. *      
  5. *      $Id: memory_driver_wincache.php 2012-07-30 Created by Yang Wang (http://gai001.com)
  6. */

  7. if(!defined('IN_DISCUZ')) {
  8.         exit('Access Denied');
  9. }

  10. class memory_driver_wincache
  11. {

  12.         public function init($config) {

  13.         }

  14.         public function get($key) {
  15.                 return wincache_ucache_get($key);
  16.         }

  17.         public function set($key, $value, $ttl = 0) {
  18.                 return wincache_ucache_set($key, $value, $ttl);
  19.         }

  20.         public function rm($key) {
  21.                 return wincache_ucache_delete($key);
  22.         }

  23.         public function clear() {
  24.                 return wincache_ucache_clear();
  25.         }
  26.         
  27.         public function inc($key, $step = 1) {
  28.                 return wincache_ucache_inc($key, $step);
  29.         }

  30.         public function dec($key, $step = 1) {
  31.                 return wincache_ucache_dec($key, $step);
  32.         }

  33. }

  34. ?>
复制代码
4、\config\config_global.php(修改)
  1. $_config['memory']['eaccelerator'] = 1;
  2. //下面这句是新增的,是控制wincache是否启用;(1为启用;0为不启用)
  3. $_config['memory']['wincache'] = 1;
复制代码
上面的几个修改文件,我们也做了打包了,放在115上了:
http://115.com/file/e7k762tr#
[gai001.com]_WinCache support for Discuz X2.5.zip
注意:这里面没有config_global.php文件,自己修改一下即可!
本文由第一改装网(http://gai001.com)技术团队原创,转载请保留来源。

评分

2

查看全部评分

泰州电子商务 发表于 2012-7-31 11:09:01 | 显示全部楼层
帮楼主顶顶啊
-------------------------------------------------------------------------------------------------

http://ks.savesun.cn http://xz.savesun.cn http://ha.savesun.cn http://slmk.savesun.cn
http://cs.savesun.cn http://jy.savesun.cn http://www.bbs100.net http://www.kupoo.net
http://www.110ok.net
回复

使用道具 举报

1314学习网 发表于 2012-7-31 11:46:01 | 显示全部楼层
本帖最后由 1314学习网 于 2012-7-31 11:56 编辑
泰州电子商务 发表于 2012-7-31 11:09
帮楼主顶顶啊
------------------------------------------------------------------------------------ ...

顶下。。。。。。。
回复

使用道具 举报

 楼主| gai001.com 发表于 2012-7-31 12:46:36 | 显示全部楼层
使用中如果遇到问题,可以联系下我们:web@gai001.com,我们一起来测试和解决;
回复

使用道具 举报

4535 发表于 2012-7-31 13:51:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

kebe 发表于 2012-8-7 10:00:57 | 显示全部楼层
好东西,测试一下试试
回复

使用道具 举报

潮宅男女 发表于 2012-8-7 10:11:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

kebe 发表于 2012-8-8 18:28:39 | 显示全部楼层
使用 iis7.5 php5.3  wincache    ,有时php-cgi.exe进程老是爆增,到200多个了,然后网站就是500,请问你知道是什么原因引起的吗
回复

使用道具 举报

bugpig 发表于 2012-8-9 22:45:40 | 显示全部楼层
X2 如何修改?你就单装了wincache?
回复

使用道具 举报

bugpig 发表于 2012-8-9 22:47:01 | 显示全部楼层
楼主强大,把X2的放出来吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 16:56 , Processed in 0.031132 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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