使用阿里云OCS优化Discuz性能

使用阿里云OCS优化Discuz性能

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/138/ ]

之前写过一篇文章介绍过如何使用阿里云OCS,由于当前Discuz官方只提供memcache的PHP 扩展环境支持,所以这回跟大家分享,如何让Discuz支持memcached扩展,同时把OCS跟Discuz结合起来,提高网站性能.

之前写过一篇文章介绍过如何使用阿里云OCS,由于当前Discuz官方只提供memcache的PHP 扩展环境支持,所以这回跟大家分享,如何让Discuz支持memcached扩展,同时把OCS跟Discuz结合起来,提高网站性能。

相同配置下,ab压力测试对比

开启前:Requests per second:    28.74 [#/sec] (mean)

开启后:Requests per second:    38.72 [#/sec] (mean)

discuz默认不支持memcached

1)使用memcached取代memcache拓展

打开文件 source/class/discuz/discuz_memory.php,修改第27行代码

$this->extension['memcache'] = extension_loaded('memcache');

改为

$this->extension['memcache'] = extension_loaded('memcached');

保存后

discuz支持memcahced拓展

2)更新官方对memcache的操作类

打开文件 source/class/memory/memory_driver_memcache.php,修改类的两个方法init()、getMulti()

public function init($config) {
    if(!empty($config['server'])) {
        $this->obj = new Memcached('bbs');
        if (count($this->obj->getServerList()) == 0) {
            $this->obj->setOption(Memcached::OPT_COMPRESSION, false);
            $this->obj->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
            $this->obj->addServer($config['server'], $config['port']);
            $this->obj->setSaslAuthData('OCS账号', 'OCS密码'); 
        }
        $connect=$this->obj->set('connect', '1');
        $this->enable = $connect ? true : false;
    }
}

public function getMulti($keys) {
    return $this->obj->getMulti($keys);
}

3)修改配置文件: config/config_global.php,大概在25行的位置,找到memcache的配置。

$_config['memory']['memcache']['server'] = 'OCS地址';
$_config['memory']['memcache']['port'] = 11211;

保存后如下

3.jpg

到此,OCS就已经默默的为Discuz开启缓存加速了。大家可以自己测试一下加速后的效果。

评论:

  1. 暂无评论...
  2. 我来说两句:

      切换  

    磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

      切换  

    磨途歌随机验证码