一、首先安装服务端memcached

1.下载libevent与memcache软件包。

下载memcached:

wget http://memcached.org/latest
wget http://www.memcached.org/files/memcached-1.5.7.tar.gz

下载libevent:

--no-check-certificate 参数表示可以接受 https的连接

wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz --no-check-certificate

2.解压后安装

先安装libevent

tar zxvf libevent-2.1.8-stable.tar.gz

./configure -prefix=/usr/local/libevent

make && make install

查看是否安装成功

daokr@DK:/usr/local/libevent/lib$ ls -la |grep libevent

3.开始安装memcached 同时需要安装中指定libevent的安装位置:

root@DK:/home/daokr/downfile/memcached-1.5.7#./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

root@DK:/home/daokr/downfile/memcached-1.5.7# make && make install

查看是否安装完成

先复制一份执行文件到bin目录:

cp memcached /usr/local/bin/

然后运行命令启动:

/usr/local/bin/memcached -d -m 256 -u daokr -l localhost -p 11200 -c 1024 -P /tmp/memcached.pid

telnet localhost 11200 表示成功安装!

3.memcached 相关参数说明

相关解释如下:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是200MB
-u是运行Memcache的用户,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.1.91
-p是设置Memcache监听的端口,我这里设置了9023,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,这里设置了256
-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid

二、安装Memcached的PHP扩展

1)安装memcached 首先 我们呢用到的有两个包来安装要;
第一个:memcached扩展是基于libmemcached,所以要先安装libmemcached


cd /home/daokr/downfile
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar zxvf libmemcached-1.0..tar.gz
cd libmemcached-1.0.
./configure --prefix=/usr/local/libmemcached --with-memcached
make
make install

2)接下来安装php-memcached (这个包主要为了生成扩展)

安装php-fpm的memcached扩展;具体php支持哪几个版本到官方地址:http://pecl.php.net/package/memcached 查看下载

cd /home/daokr/downfile
wget http://pecl.php.net/get/memcached-3.0.4.tgz
tar zxvf memcached-3.0..tgz
cd memcached-3.0.

我选择的是memcached-3.0.4 这个版本;因为我们工作开发环境就是这个版本;所以就不换了。

执行

/home/php/bin/phpize

报错如下:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
根据网上的解决办法是:

下载安装其他软件:
# yum install m4
# yum install autoconf

或者
#apt install m4
#apt install autoconf

主要下面所有的命令都在memcache-3.0.4/ 该目录下;然后再执行:

然后继续执行下面命令:

/home/php/bin/phpize --with-php-config=/home/php/bin/php-config
./configure --with-php-config=/home/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
make && make install

结果如下:

--with-php-config 指定 php-config,该文件与 phpize 所在目录相同,

--with-libmemcached-dir 指定 libmemcached 安装目录,就刚才我们 --prefix 那个目录 ,

--disable-memcached-sasl 说明我们系统不支持sasl.h

3.上述安装完后会有类似这样的提示:

如果安装成功,会提示:Installing shared extensions: /home/php/lib/php/extensions/no-debug-zts-20151012/等类信息

接下来,我们编辑php配置文件php.ini,把 php-memcached 扩展加到配置文件。

4.把php.ini中的extension_dir = "./" 修改为

extension_dir = "/home/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"

在 php.ini 中添加以下内容:

extension=memcached.so

5.添加一行来载入memcache扩展:extension=memcache.so

然后重启:nginx, php-fpm, 还有memcache服务后;测试下面文件;

Memcache环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!

< ?php

$mem=new Memcached(); //实例化Memcached类
$server= array(
array('127.0.0.1',11200),
);
$isok = $mem->addServers($server);

$issetm = $mem->set('name','zhangsanddd',15); ////设置缓存值,有效时间3600秒,如果有效时间设置为0,则表示该缓存值永久存在的(系统重启前)
echo $mem->get('name');

?>

或者直接telnet来查看是否设置成功:

telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

get name
VALUE name 0 11
zhangsanddd

 

Linux下的Memcache安装 和 安装Memcache的PHP扩展的更多相关文章

  1. Linux下通过源码编译安装程序

    本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...

  2. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  3. LINUX下中文语言包的安装(转)

    在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了.中文的是fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0- ...

  4. linux下使用非root账号安装zabbix-client

    linux下使用非root账号安装zabbix-client使用非root账号rusky登录:[rusky@testServer]#tar zxvf zabbix-2.4.5.tar.gz #cd z ...

  5. [转]在linux下如何判断是否已经安装某个软件?软件安装在哪个目录

    <1>在linux下如何判断是否已经安装某个软件? ++++++++++++++++++++++++++++++++++++++++++ rpm -qa|grep 软件包 ++++++++ ...

  6. Linux下批量管理工具pssh安装和使用

    Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...

  7. linux下各安装包的安装方法

    <转>linux下各安装包的安装方法   一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root ...

  8. linux下搭建lamp环境以及安装swoole扩展

    linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5 ...

  9. Linux下如何查看tomcat是否安装、启动、文件路径、进程ID

    Linux下如何查看tomcat是否安装.启动.文件路径.进程ID 在Linux系统下,Tomcat使用命令的操作! 检测是否有安装了Tomcat: rpm -qa|grep tomcat 查看Tom ...

  10. Linux下tomcat6.0与jdk安装

    Linux下tomcat6.0与jdk安装 步骤如下: 1. 上传apache-tomcat-6.0.37.tar.gz和jdk-6u13-linux-i586.bin至/usr/local 给这两个 ...

随机推荐

  1. vue --- axios拦截器+form格式请求体

    在vue2.x中使用CLI生成的模板有很大改变,需要自己手动在main.ts同级目录下新建interceptors.ts interceptors.ts import axios from 'axio ...

  2. Charles4.2.8抓包(http+https)

    Charles 和 Fiddler 一样都是http抓包工具. 之前用 Fiddler 抓个别 ios 手机 https 报文时总卡在哪里返不回任何数据,后来怀疑是 Fiddler 问题,就考虑使用  ...

  3. JAVA的枚举基本操作,对原码反码补码的理解及为运算的深入理解,浮点数计算的误差分析

    ①深入浅出的了解枚举类型 先看一段代码: enum Size{SMALL,MEDIUM,LARGE}; public class EnumTest { public static void main( ...

  4. angularjs 文件下载 并 从response header中获取文件名

    最近在做一个下载文件的功能,后台接口给的是二进制流的方式,那么前端要把二进制流下载下来. 这个过程使用$http的get请求,使用Blob接收,倒是没有难度,主要是遇到了,后台的文件名拿不到 的问题. ...

  5. 1 集群状态、增删改查、全量替换、强制创建、设置单个index的分片数副本数

    检查集群健康状态,可以看集群颜色.(黄色:primary shard都正常,replica不正常) GET /_cat/health?v 列出集群所有index GET /_cat/indices?v ...

  6. 移动端vue2.5去哪儿项目-常见问题整理

    一.项目中遇到的问题.难点及解决方式 1. 移动端开发中的1px边框问题,由于在不同设备屏幕上,可能会使得1px实际在移动端显示不是1px,怎么解决? 2. 移动端click点击事件,会延迟300ms ...

  7. 74.js---移动端文章的瀑布流的实现。

    移动端文章的瀑布流的实现.   1.首先在前端html页面已经通过PHP代码循环完全数据.  2.然后在js先全部隐藏,通过判断滑动到底部,每次加载一部分数据,直到数据全部显示完全. js代码: // ...

  8. 本地ssh快速登录

    每次登录都要ssh -p wang@xx.xx.xx.xx 虽然做了公钥验证 https://www.cnblogs.com/php-linux/p/10795913.html 不需要输入密码,但是每 ...

  9. 【Python】单例模式

    单例 class MusicPlayer(object): instance = None def __new__(cls, *args, **kwargs): if cls.instance is ...

  10. 【HCIA Gauss】学习汇总-数据库管理(数据库基本概念)-3

    数据库:操作系统文件或磁盘数据块的集合数据库实例: 指操作系统中一系列进程以及为这些进程分配的内存块 通常来说一个数据库实例对应着一个数据库[数据库实例是访问数据的通道] 多实例:利用多实例 可以充分 ...