易客CRM,中小企业最忠实的合作伙伴!

阿里云缓存服务OCS的PHP5.2的开发示例

php admin 1293℃ 0评论

阿里云即将推出缓存服务OCS,现在还在测试期,申请了邀请码,打算在易客CRM上的云平台上使用缓存服务OCS,测试期间发现阿里云官方只支持PHP5.3以上版本,php5.2不支持,OCS支持memcached协议,理论上应该和php语言的版本没有关系,只要遵守memcached协议就应该可以访问OCS,阿里云的技术团队也研究了一下这个问题,晚上11点多还打电话沟通,够敬业的,不过他们的最终结果还是php5.2不能访问OCS。
在http://pecl.php.net/package/memcached/网站上看release的文档,一直有支持php5.2,肯定可以支持php5.2,先后测试了memcached和libmemcached的不同版本,最终确定memcached2.1.0、libmemcached-1.0.15和php5.2可以匹配,但是在编译 libmemcached-1.0.15遇到了问题,google了一下发现是GCC的版本太低的原因,答案在这里http://blog.csdn.net/flyrainer/article/details/7742368 。
具体的操作步骤如下:
1)首先要安装php5.2,易客CRM用的是php5.2.17
2)安装GCC和升级GCC
yum  install gcc+ gcc-c++
yum install gcc44 gcc44-c++ libstdc++44-devel
yum install gcc44 gcc44-c++ libstdc++44-devel
export CC=/usr/bin/gcc44
export CXX=/usr/bin/g++44
3)安装SASL相关环境yum install cyrus-sasl-plain cyrus-sasl  cyrus-sasl-devel  cyrus-sasl-lib
4)安装libmemcached  【版本为libmemcached-1.0.15】
请先检测下是否有已安装了这些包【包含源码包】如有则不需要安装
wget https://launchpad.net/libmemcached/1.0/1.0.15/+download/libmemcached-1.0.15.tar.gz
tar zxvf libmemcached-1.0.15.tar.gz
cd libmemcached-1.0.15
./configure –prefix=/usr/local/libmemcached
make
make install
cd ..
4. 安装过程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 【版本号memcached2.1.0】
tar -zxvf memcached-2.1.0.tgz
cd memcached-2.1.0
phpize(如果系统中有两套PHP环境,需绝对路径调用该命令/usr/bin/phpize,该路径为使用OCS的PHP环境路径,请在memcached源码目录内执行phpize)
./configure –with-libmemcached-dir=/usr/local/libmemcached –enable-memcached-sasl(注意这个参数)
make
make install
最后修改php.ini文件(locate找该文件,yum安装的一般在/etc/php.ini 如果系统中有两套PHP环境,需找到使用OCS的PHP环境路径,对应修改之),增加extension=memcached.so
执行php –m |grep memcached 如显结果有 memcache 表示环境已支持memcache

代码示例如下:
代码示例如下
$connect = new Memcached;
$connect->setOption(Memcached::OPT_COMPRESSION, false);
$connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$connect->addServer(‘host’, port);
$connect->setSaslAuthData(‘username’, ‘password’);
$connect->set(“hello”, “world”);
echo ‘hello: ‘,$connect->get(“hello”);
$connect->quit();

 

 

 

 

 

 

转载请注明:易客CRM官方博客 » 阿里云缓存服务OCS的PHP5.2的开发示例

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!