Discuz使用阿里云OCS服务


又是一个凌晨,在重置了五次系统,请教了一位高手,百度无数次之后,终于搞定了Discuz连接OCS缓存。感谢阿里云论坛OCS板块的版主mayle,同样感谢那些分享各种教程的可爱的人们,同时感谢自己,在电脑前坐了八个小时没动。下面把我的安装过程整理出来,希望可以帮助到其他人,同时做个记录,方便日后查询。

首先,我用的系统是CentOS 6.5 x64的版本。之前的环境配置用的阿里云的一件安装包,在阿里云帮助中心有下载,并且有详细的安装教程,这部分不再多说。

此教程适用于Centos及 Aliyun Linux 6系列版本

1)首先需要确认是否安装了gcc-c++等组件可以使用如没有请执行,

yum install gcc+ gcc-c++

使用gcc –v查看版本是否为4.2(含)以上     【必须要安装GCC GCC要大于等于4.2】

2) 安装SASL相关环境    【请先检测下是否有已安装了这些包,如有则不需要安装】

yum install cyrus-sasl-plain cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib

3) 安装源码包libmemcached      【推荐版本libmemcached-1.0.16】

请先检测下是否有已安装了这些包【包含源码包】如有则不需要安装

wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz
 tar zxvf libmemcached-1.0.16.tar.gz
 cd libmemcached-1.0.16
 ./configure --prefix=/alidata/server/libmemcached
 make
 makeinstall
 make clean
 cd ..

4) 安装源码包memcached 【推荐版本为memcached-2.1.0】

安装MEMCACHED前需要确认是否有zlib-devel包没有需要执行

yum install zlib-devel

请先检测下是否有已安装了memcached客户端包【包含源码包】如有则不需要安装,但需要重新编译增加-enable-memcached-sasl这个扩展

wget http://pecl.php.net/get/memcached-2.1.0.tgz
 tar zxvf memcached-2.1.0.tgz
 cd memcached-2.1.0
 /alidata/server/php/bin/phpize(这条命令一定要在memcached-2.1.0目录下执行,否则会报错。如果系统中有两套PHP环境,需绝对路径调用该命令/usr/bin/phpize,该路径为使用OCS的PHP环境路径)
 ./configure --with-libmemcached-dir=/alidata/server/libmemcached --with-php-config=/alidata/server/php/bin/php-config --enable-memcached-sasl (注意这个参数)
 make
 make install

【备注】--with-php-config=/alidata/server/php/bin/php-config这部分是我安装的时候报错,我自己加上的。

5)修改php.ini文件(locate找该文件,如果系统中有两套PHP环境,需找到使用OCS的PHP环境路径,对应修改之),增加 extension=memcached.so

依赖 :
Memcached 2.1.0扩展必须使用libmemcached 1.0.x的库,低于1.0的库不能够成功编译。编译 libmemcached时GCC要求在4.2以上。

搞完以上这些就说明给php成功的安装了memcached扩展,可以运行phpinfo检查下,我的截图如下:

然后安装discuz,安装后修改配置文件config_global.php,在memcached部分加入一下两行,并且在server里面填上OCS内网地址。

$_config['memory']['memcache']['user'] = '***********';//阿里云ocs账号
$_config['memory']['memcache']['passwd'] = '*********';//阿里云ocs密码

最后,覆盖下面我提供的这个memory_driver_memcache.php文件,路径:source/class/memory/,理论上支持x2到x3.1所有版本,但只做了X3.1 SC_GBK的测试,其他版本使用前请先行测试(经测试Discuz X 3.2可以使用)。

如果你服务器上没有安装php-memcache,而只安装了php-memcached,请先覆盖这个文件,路径:source/class/discuz,不覆盖的话会导致memcached缓存不会被启用。

弄完这些后,去OCS控制台看看命中率有没有数字,如果命中率还是0的话,说明还存在问题。

附件下载:

discuz_memory         memory_driver_memcache                 (已更新)

 

参考到的教程:

http://bbs.aliyun.com/read/146736.html?spm=5176.7189909.0.0.kGboX4
http://help.aliyun.com/view/11108324_13703944.html?spm=5176.7150518.1996836753.9.TVbwJc
http://www.swei.us/cloud-computing/92.html

声明:麦子花开|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Discuz使用阿里云OCS服务


休对故人思故国,且将新火试新茶。诗酒趁年华!