关键词: Memcached PHP 客户端
声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(DCS)的用户指南。客户端连接方法通用,故摘抄过来分享给大家。
PHP客户端
RedHat系列:
以CentOS7为例介绍PHP版本客户端的安装。Redhat、Fedora等系统也适用。
-
安装gcc-c++及make等编译组件。
yum install gcc-c++ make
-
安装sasl相关包。
yum install cyrus-sasl*
-
安装libmemcached。
由于libmemcached库需要增加sasl认证参数,因此不能直接使用yum命令安装。
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -xvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --enable-sasl
make && make install
说明:安装libmemcached之前要完成gcc-c++、sasl相关组件的安装。否则会在编译过程中报错,报错问题解决后请执行make clean之后重新make。
-
安装php。
yum install php-devel php-common php-cli
-
安装memcached客户端。
注意运行configure配置安装时,增加开启sasl参数。
wget http://pecl.php.net/get/memcached-2.1.0.tgz
tar zxvf memcached-2.1.0.tgz
cd memcached-2.1.0
phpize
./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl
make && make install
-
增加php.ini配置。
使用find或者locate命令找到php.ini文件。
find / -name php.ini
编辑该文件,增加以下两行:
extension=memcached.so memcached.use_sasl = 1
-
测试连接。
新增一个memcached.php文件,增加如下内容:
<?php $connect = new Memcached; //声明一个Memcached连接 $connect->setOption(Memcached::OPT_COMPRESSION, false); //关闭压缩 $connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //使用二进制协议 $connect->setOption(Memcached::OPT_TCP_NODELAY, true); //关闭TCP网络延迟策略 $connect->addServer('{memcached_instance_ip}', 11211); //此处填写实例ip和端口 $connect->setSaslAuthData('{username}', '{password}'); //如果实例开启免密访问,则删除或者注释此行 $connect->set("DCS", "Come on!"); echo 'DCS: ',$connect->get("DCS"); echo "\n"; $connect->quit(); ?>
保存后运行情况如下:
[root@testphpmemcached ~]# php memcached.php DCS: Come on! [root@testphpmemcached ~]#
debian系列
以Ubuntu为例,安装步骤如下:
-
安装gcc及make等编译组件。
apt install gcc make
-
安装php。
推荐使用php5.x的版本,对sasl认证兼容性较好。
按照如下步骤先添加php低版本的镜像源,然后安装php5.6以及php5.6-dev。
apt-get install -y language-pack-en-base;
LC_ALL=en_US.UTF-8;
add-apt-repository ppa:ondrej/php;
apt-get update;
apt-get install php5.6 php5.6-dev;
安装完成后,使用php -version,查看版本号为5.6,说明安装成功。
root@dcs-nodelete:/etc/apt# php -version PHP 5.6.36-1+ubuntu16.04.1+deb.sury.org+1 (cli) Copyright (c) 1997-2016 The PHP Group
说明:如果需要卸载php,可使用如下命令:
apt install aptitude -y
aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
-
安装sasl组件。
apt install libsasl2-dev cloog.ppl
-
安装libmemcached。
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -xvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached
make && make install
说明:安装libmemcached之前要完成gcc、sasl相关组件的安装。否则会在编译过程中报错,报错问题解决后请执行make clean之后重新make。
-
安装memcached客户端。
首先安装zlib组件。
apt install zlib1g.dev
安装注意运行configure配置安装时,增加开启sasl参数。
wget http://pecl.php.net/get/memcached-2.2.0.tgz;
tar zxvf memcached-2.2.0.tgz;
cd memcached-2.2.0;
phpize5.6;
./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl;
make && make install;
-
增加pdo.ini配置。
使用find命令找到pdo.ini文件。
find / -name pdo.ini
默认应该在/etc/php/5.6/mods-available路径下。编辑该文件,增加以下两行:
extension=memcached.so memcached.use_sasl = 1
-
测试连接。
新增一个memcached.php文件,增加如下内容:
<?php $connect = new Memcached; //声明一个Memcached连接 $connect->setOption(Memcached::OPT_COMPRESSION, false); //关闭压缩 $connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //使用二进制协议 $connect->setOption(Memcached::OPT_TCP_NODELAY, true); //关闭TCP网络延迟策略 $connect->addServer('{memcached_instance_ip}', 11211); //此处填写实例ip和端口 $connect->setSaslAuthData('{username}', '{password}'); //如果实例开启免密访问,则删除或者注释此行 $connect->set("DCS", "Come on!"); echo 'DCS: ',$connect->get("DCS"); echo "\n"; $connect->quit(); ?>
保存后运行情况如下:
[root@dcs-nodelete ~]# php memcached.php DCS: Come on! [root@dcs-nodelete ~]#