ThinkPHP3.2 阿里云OCS Cache驱动

浏览:4292 最后更新:2015-12-07 14:28 分类:驱动 关键字: 阿里云 OCS Cache
有个开发项目用到阿里云OCS,依据阿里云文档,参照Think Memcached 写了ThinkPHP3.2 阿里云OCS Cache驱动,我们的项目在ThinkPHP3.2.2下工作。

注意是Memcached,需要你的网站运行环境支持PHP Memcached扩展,不是服务器自身安装的Memcached服务器端,注意: Memcached 扩展 及 服务器运行环境必须支持且启用 sasl

驱动文件存放于:ThinkPHP3.2.2\Library\Think\Cache\Driver 下



为了SASL问题,我们排查服务器环境搞了一个多小时。




------------------------------------
附:CentOS 6.2 X64 服务器安装及配置 PHP Memcached 扩展参考
------------------------------------
[ 服务器环境检查:sasl 环境和 libmemached 安装 ]

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

------------------------------------
1. 安装 sasl 环境
------------------------------------
yum install cyrus-sasl-lib.x86_64
yum install cyrus-sasl-devel.x86_64
yum install cyrus-sasl-plain cyrus-sasl
yum install cyrus-sasl-devel
yum install cyrus-sasl-lib
yum install zlib-devel

------------------------------------
2. 安装 libmemached
------------------------------------
注意:如果原先安装过请先 rm -r -f /usr/local/libmemcached
cd /usr/local/src
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure -prefix=/usr/local/libmemcached -with-memcached --enable-sasl
make && make install
make clean

-----------------------------------------

[ 安装PHP Memcached扩展,注意是客户端,不是服务器端 ]
注意,客户端建议安装和使用Memcached扩展
注意:如果原先安装过请先删除Memcached扩展
rm -r -f /usr/local/phpmemcached
rm -r -f /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcached.so

安装Memcached扩展前需要确认是否有zlib-devel包没有需要执行
yum install zlib-devel
请先检测下是否有已安装了memcached客户端包【包含源码包】如有则不需要安装,但需要重新编译增加-enable-memcached-sasl这个扩展

cd /usr/local/src
wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar -zxvf memcached-2.2.0.tgz
cd memcached-2.2.0
--------------------------------------------------

/usr/local/php/bin/phpize
./configure -enable-memcached -with-php-config=/usr/local/php/bin/php-config -with-zlib-dir -with-libmemcached-dir=/usr/local/libmemcached -prefix=/usr/local/phpmemcached --enable-memcached-sasl

make && make install
make clean

编辑 php.ini 加入一下3行
vi /usr/local/php/etc/php.ini

extension = "memcached.so"
[memcached]
memcached.use_sasl = 1

阿里云OCS 测试代码<?php
$connect = new Memcached;  //声明一个新的memcached链接
$connect->setOption(Memcached::OPT_COMPRESSION, false); //关闭压缩功能
$connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //使用binary二进制协议
$connect->addServer('aaaaaaaaaa.m.yyyyyyyyyyy.ocs.aliyuncs.com', 11211); //添加OCS实例地址及端口号
$connect->setSaslAuthData('aaaaaaaaaa, 'password'); //设置OCS帐号密码进行鉴权
$connect->set("hello", "world");
echo 'hello: ',$connect->get("hello");
$connect->quit();
?>
阿里云OCS 常见问题

OCS对从客户端发往OCS服务端的QPS和吞吐量都有限额,因此当您的访问频度超过了配额时,客户端会报出下述错误。

ERROR net.spy.memcached.protocol.binary.StoreOperationImpl: Error:
WARN net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl: Discarding partially completed op: ...

-------------------------------------------------------------------------
在使用OCS过程中如果出现如下错误:
Couldn't auth server: ACTION NOT SUPPORTED
Couldn't store key: CONNECTION FAILURE
请确认您是否安装了cyrus-sasl-plain cyrus-sasl
评论( 相关
后面还有条评论,点击查看>>