系统镜像及环境要求:

1) 适用于windows系列版本及开发者的相关教程  请参考本文1.0开始安装步骤

2)  Centos 6系列及Aliyun Linux 6系列以上版本 请参考本文2.0开始安装步骤

3)  Centos 5系列及Aliyun Linux 5系列版本,请参考本文3.0开始安装步骤

4)  Ubuntu Debian等系列版本,请参考本文4.0安装步骤

注意事项:如您已经有php memcache等环境,请注意教程中的一些提示,以免生产环境被覆盖,导致业务不可用,在升级及再编译环境前请做好环境备份!

1.0 安装步骤

如果采用标准的php memcached扩展不能成功搭建,可以考虑换成手工拼包的形式来访问OCS,连接方式请参考如下链接,示例代码非常简单,与php memcached的区别就是仅支持主流接口,需自己补充某些特定接口,安装及使用方法如下:

https://github.com/ronnywang/PHPMemcacheSASL

2.0 安装步骤

Centos及 Aliyun Linux 6系列版本

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

yum  install gcc+ gcc-c++

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

1)    rpm –qa | grep php 查看系统中是否有PHP环境,如果没有则安装之;如果有PHP则不要安装。建议使用php5.3【含】以上版本PHP5.2部分版本系列源代码会有zend_parse_parameters_none函数会出错,如需使用请参照php官方相关文档【包含源码编译的PHP】

yum install php-devel,php-common,php-cli  

【如是源代码编译,请按照官方php编译升级的办法进行】

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=/usr/local/libmemcached --enable-sasl
make
make install
cd ..

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

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

yum install zlib-devel

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

wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar zxvf memcached-2.2.0.tgz
cd memcached-2.2.0
phpize(如果系统中有两套PHP环境,需绝对路径调用该命令/usr/bin/phpize,该路径为使用OCS的PHP环境路径)
./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl(注意这个参数)
make
make install

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

extension=memcached.so
memcached.use_sasl = 1

依赖 :

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

使用该页面最后的测试代码测试下是否环境部署成功,请修改代码中相应的地址 端口 用户名及密码

3.0 安装步骤

Centos及 Aliyun Linux 5系列版本 【64位版本】

首先需要确认是否安装了gcc-c++等组件如没有请执行

yum  install gcc+ gcc-c++

1)    rpm –qa | grep php 查看系统中是否有PHP环境,如果没有则安装之;如果有PHP则不要安装!建议使用php5.3【含】以上版本PHP5.2部分版本系列源代码会有zend_parse_parameters_none函数会出错,如需使用请参照php官方相关文档【包含源码编译的PHP】

yum install php53 php53-devel

2) 安装SASL相关环境

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

3) 安装源码包libmemcached  【推荐版本libmemcached1.0.2】

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

wget http://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz
tar -zxvf libmemcached-1.0.16.tar.gzcd libmemcached-1.0.16
cd libmemcached-1.0.16
./configure --prefix=/usr/local/libmemcached --enable-sasl
make
make install
cd .. 

4)    安装源码包memcached 【推荐版本memcached2.0】

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

yum install zlib-devel

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

wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar -zxvf memcached-2.0.0.tgz
cd memcached-2.0.0
phpize(如果系统中有两套PHP环境,需绝对路径调用该命令/usr/bin/phpize,该路径为使用OCS的PHP环境路径,请在memcached源码目录内执行phpize)
./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl(注意这个参数)
make
make instal

最后修改php.ini文件(locate找该文件,yum安装的一般在/etc/php.ini 如果系统中有两套PHP环境,需找到使用OCS的PHP环境路径,对应修改之),增加

extension=memcached.so
memcached.use_sasl = 1

执行php –m |grep memcached 如显结果有 memcache 表示环境已支持memcache

使用该页面最后的测试代码测试下是否环境部署成功,请修改代码中相应的地址 端口 用户名及密码

4.0  安装步骤

1)    变更ubuntu源

方案一: vim /etc/apt/source.list

在最前面添加一下内容

deb http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiverse
apt-get update //更新一下列表

方案二: 通过wget http://oss.aliyuncs.com/aliyunecs/update_source.tgz 下载update_source的压缩包 解压后予执行权限 chmod 777 文件名 ,然后执行该脚本进行自动变更源操作

2)   通过ape-get配置GCC,G++

首先需要使用dpkg –s安装包名 【例如 dpkg –s gcc】确认是否安装了gcc-c++等组件如没有请执行

apt-get build-dep gcc
apt-get install build-essential
apt-get install pkg-config

3)    安装php5, php5-dev

首先需要使用dpkg –s安装包名 【例如 dpkg –s php】确认是否安装了php等组件如没有请执行

apt-get install php5 php5-dev  【同时会自动安装php5-cli和php5-common】

4)    安装配置sasl支持

首先需要使用dpkg –s安装包名 【例如 dpkg –s libsasl2】确认是否安装了libsasl2 cloog-ppl等组件如没有请执行

apt-get install  libsasl2-dev cloog-ppl
cd /usr/local/src

5)    安装指定版本的libmemcache

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

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=/usr/local/libmemcached
make
make install
cd ..

6)    安装指定版本的memcached

请先检测下是否有已安装了memcached客户端包【包含源码包】如有则不需要安装,但需要重新编译增加-enable-memcached-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
./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl
make
make install

7)    配置php支持memcached,然后测试

echo "extension=memcached.so" >>/etc/php5/conf.d/pdo.ini
echo "memcached.use_sasl = 1" >>/etc/php5/conf.d/pdo.ini

php -m |grep mem

memcached 【显示出该组件代表安装完成】

配置完毕

代码示例如下

1、示例1:最基本的连接OCS及set/get操作:

$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();

2、示例2:在OCS中缓存一个数组

$connect= new Memcached; //声明一个新的memcached链接
$connect->setOption(Memcached::OPT_COMPRESSION, false); //关闭压缩功能
$connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true);//使用binary二进制协议
$connect->addServer('xxxxxxxx.m.yyyyyyyy.ocs.aliyuncs.com', 11211);//添加OCS实例地址及端口号
$connect->setSaslAuthData('xxxxxxxx', 'bbbbbbbb');//设置OCS帐号密码进行鉴权,如已开启免密码功能,则无需此步骤。
$user = array(
"name" => "ocs",
"age" => 1,
"sex" => "male"
); //声明一组数组
$expire = 60; //设置过期时间
test($connect->set('your_name',$user,$expire), true, 'Set cache failed');
if($connect->get('your_name')){
$result =$connect->get('your_name');
}else{
echo "Return code:", $connect->getResultCode();
echo "Retucn Message:", $connect->getResultMessage (); //如出现错误,解析出返回码
$result=" ";
}
print_r($result);
$connect->quit(); function test($val, $expect, $msg)
{
if($val!= $expect) throw new Exception($msg);
}

3、示例3:OCS与MySQL数据库结合使用的例子

$connect = new Memcached; //声明一个新的memcached链接
$connect->setOption(Memcached::OPT_COMPRESSION, false);//关闭压缩功能
$connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true);//使用binary二进制协议
$connect->addServer('xxxxxx.m.yyyyyyyy.ocs.aliyuncs.com', 11211);//添加实例地址 端口号
$connect->setSaslAuthData('xxxxxx', 'my_passwd');//设置OCS帐号密码进行鉴权,如已开启免密码功能,则无需此步骤
$user = array(
"name" => "ocs",
"age" => 1,
"sex" => "male"
); //定义一组数组 if($connect->get('your_name'))
{
$result =$connect->get('your_name');
print_r($result);
echo "Found in OCS, get data from OCS"; //如果获取到数据,则打印此数据来源于OCS
exit;
}
else
{
echo "Return code:", $connect->getResultCode();
echo "Retucn Message:", $connect->getResultMessage ();//抛出code返回码
$db_host='zzzzzz.mysql.rds.aliyuncs.com'; //数据库地址
$db_name='my_db'; //database name
$db_username='db_user'; //数据库用户名
$db_password='db_passwd';//数据库用户密码
$connection=mysql_connect($db_host,$db_username,$db_password);
if (!mysql_select_db($db_name, $connection))
{
echo 'Could not select database'; //数据库连接不成功则抛出错误信息
exit;
}
$sql = "SELECT name,age,sex FROM test1 WHERE name = 'ocs'";
$result = mysql_query($sql, $connection);
while ($row = mysql_fetch_assoc($result))
{
$user = array(
"name" => $row["name"],
"age" => $row["age"],
"sex" => $row["sex"],
);
$expire = 5; //设置数据在缓存中的过期时间
test($connect->set('your_name',$user,$expire), true, 'Set cache failed'); //写入OCS缓存
}
mysql_free_result($result);
mysql_close($connection);
}
print_r($connect->get('your_name')); //打印出 获取到的数据
echo "Not Found in OCS,get data from MySQL"; //确认从数据库获取的数据
$connect->quit(); function test($val, $expect, $msg)
{
if($val!= $expect) throw new Exception($msg); }

来源:https://help.aliyun.com/knowledge_detail/5974954.html

linux下memcached的安装的更多相关文章

  1. Linux下Memcached的安装步骤

    一.安装gcc# yum -y install gcc 二.安装libevent# wget http://www.monkey.org/~provos/libevent-2.0.12-stable. ...

  2. Linux下memcached安装和启动方法

    Linux下memcached安装和启动方法 1. 首先下载memcached 和 libevent 包. Memcached用到了libevent这个库用于Socket的处理.下面是下载的两个包文件 ...

  3. memcached的安装和linux下memcached服务自启动的配置

    关于memcached在windows和linux环境的安装,以及在Linux系统系memcached服务自启动的配置,可以参考我在csdn上下的博客, windows和linux环境下memcach ...

  4. linux下memcached安装 和redis安装,jdk,tomcat,mysql 安装

    一.memcached安装yum  search  memcachedyum  -y install memcachedmemmcached -h service memcached restartc ...

  5. Windows下的Memcache安装 linux下的Memcache安装

    linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...

  6. Memcahce(MC)系列(两)Linux下一个Memcache安装

    Linux下一个memcache安装 memcache是高性能.分布式的内存对象缓存系统,用于在动态应用中降低数据库负载.提升訪问速度.眼下用memcache解决互联网上的大用户读取是很流行的一种使用 ...

  7. Linux 下 Memcached 缓存服务器安装配置

    Linux 下 Memcached 缓存服务器安装配置 [日期:2011-08-06] 来源:Linux社区  作者:Linux [字体:大 中 小]   [安装Memcache服务器端]我目前的平台 ...

  8. linux下memcached的启动/结束的方式

    当前项目中,linux下memcached的启动/结束的方式 默认情况下memcached安装到/usr/local/bin下. 进入安装目录,启动memcached:/usr/local/memca ...

  9. linux下PHP扩展安装memcache模块

    linux下PHP扩展安装memcache模块   roid 安装环境RHEL 4Php 5.2.6 所需软件libevent-1.4.6-stable.tar.gz (http://monkey.o ...

随机推荐

  1. Scalaz(4)- typeclass:标准类型-Equal,Order,Show,Enum

    Scalaz是由一堆的typeclass组成.每一个typeclass具备自己特殊的功能.用户可以通过随意多态(ad-hoc polymorphism)把这些功能施用在自己定义的类型上.scala这个 ...

  2. 【thinkphp5】【THINKCMG】标签部分开发(一)

    最近打算开一个自己的CMS后台轮子,框架选择了thinkphp 5 (别问我为什么选择这个框架)然后想边开发边记录一下,方便自己方便他人 进入正题 1.数据库设计 一共三张表 post文章表这个就不贴 ...

  3. Fiddler (四) 实现手机的抓包

      Fiddler是我最喜爱的工具,几乎每天都用, 我已经用了8年了. 至今我也只学会其中大概50%的功能. Fiddler绝对称得上是"神器", 任何一个搞IT的人都得着的. 小 ...

  4. GJM : 【C# 高性能服务器】完成端口、心跳的高性能Socket服务器 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  5. Jquery UI 和Easy UI常用插件

    一.Jquery的插件简介 (一)什么是插件 插件(Plug-in)是一种遵循一定的应用程序接口规范编写出来的程序,是原有系统平台或应用软件平台功能的一种扩展和补充. 注意!!其只能在程序规定的系统平 ...

  6. percona server 5.7.16正式发布

    继2016年10月12日mysql 5.7.16发布后,percona server 5.7.16终于于11月29日发布了,这是最新版本的5.7系列,可从https://www.percona.com ...

  7. web性能优化——代理(nginx)

    简介 一个很好的原则是调优时每次只个性一个配置.如果对配置的个性不能提高性能的话,改回默认值 优化必须要通过性能测试.不能意淫,需要前后对比,真实说明问题. 场景 优化nginx. 确保每次请求控制一 ...

  8. Send push notification on Apple (APNS) on c#.net

    原文: http://apns-c-sharp-net-vikram-jain.blogspot.com ======================= Please, Install your ce ...

  9. NProgress.js template

    NProgress.js:加载进度条:http://ricostacruz.com/nprogress/ 基础的这几个方法 这个网站上都有 我在一个地方看到这个代码 NProgress.configu ...

  10. Windows 安装 GTK+ 图文说明

    首先去官方下载: //官方网站 http://www.gtk.org/download/index.php //下载链接 http://win32builder.gnome.org/gtk+-bund ...