使用阿里云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)
1)使用memcached取代memcache拓展
打开文件 source/class/discuz/discuz_memory.php,修改第27行代码
$this->extension['memcache'] = extension_loaded('memcache');
改为
$this->extension['memcache'] = extension_loaded('memcached');
保存后
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;
保存后如下
到此,OCS就已经默默的为Discuz开启缓存加速了。大家可以自己测试一下加速后的效果。
我来说两句: