源码安装Memcached服务器及其2种PHP客户端
本文所用源码包皆为当时最新stable稳定版。
安装memcached服务器
先安装libevent, 最新版为2.0.21
./configure # make && make install
再安装Memcached, 最新版为1.4.17
./configure make && make install
查看版本
./memcached -h memcached 1.4.17
启动Memcached服务器端的命令为(其中192.168.220.137为我的IP):
memcached -d -m 10 -u root -l 192.168.220.137 -p 11211 -c 256 -P /tmp/memcached.pid
memcached -d -m 512 -u root -p 11211 -c 1024 -P /tmp/memcached.pid
yum安装的默认启动:
memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
其中:
- -d选项是启动一个守护进程,
- -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
- -u是运行Memcache的用户,我这里是root,
- -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
- -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
- -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
- -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
启动时如果出现如下异常:
error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
可vim /etc/ld.so.conf加上/usr/local/lib后ldconfig
安装客户端memcache
cd memcache-2.2.7 whereis phpize找到其路径然后执行: # /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config make
# make install
在php.ini(/etc目录下)文件中添加一行
extension=memcache.so
安装客户端memcached
memcached的1.2.4及以上增加了CAS(Check and Set)协议,用于同一key的多进程并发处理问题。这种情况其实跟数据库很像,如果同时有几个进程对同一个表的同一数据进行更新的话,那会不会打架呢。数据库里面可以锁定整张表,也可以锁定表里面的一行,其实memcached加入的CAS与此差不多。
php的扩展memcache,不支持cas,所以我们要装memcached扩展,memcached扩展是基于libmemcached,所以要先安装libmemcached。
有一点不要搞混了,服务端的memcached包和php的扩展memcached包是不一样的,注意下,目前服务端的memcached官网最新版是1.4.17,而php的扩展memcached包最新版是2.1.0.
Memcached 与Memcache的区别参见Memcache与Memcached的区别
libmemcached的安装
当前最新版是1.0.18
cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached
make && makeinstall
先检查phpize和php-config工具有没有安装,如果没有直接yum install php-devel就行了... 找到安装位置
#which phpize
#which php-config
我的都是在/usr/bin/... 目录下 phpize是用来编译安装扩展库用的...
安装memcached客户端
cd memcached-2.1.0 #/usr/bin/phpize 注意libmemcached路径的指定跟前面的安装目录一致. #./configure --prefix=/usr/local/phpmemcached --enable-memcached --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached #make && make install
为了以防混淆,这里指定php的memcached扩展的安装路径为/usr/local/phpmemcached
修改php的配置文件php.ini,加上模块extension=memcached.so
看看extension_dir指定的模块路径下是否有memcached.so文件.
extension_dir一般是/usr/lib/php/modules/..... 如果没有看下是否在lib64下,ln -s做下软链接.如:
ln -s /usr/lib64/php/modules /usr/lib/php/modules
但最好的做法是在 /etc/php.d/目录下添加一个文件:memcached.ini
vi /etc/php.d/memcached.ini
写入:extension=memcached.so
加这个文件要注意文件权限。否则,phpinfo中additional .ini files parsed 中没有这个文件时,证明权限不对,PHP不能打开这个文件。
重启web服务.
./nginx -s reload service php-fpm restart
在phpinfo中可以看到已经有上面2个客户端扩展了。

艺搜参考
http://blog.csdn.net/lg_lin/article/details/9632273
http://iceeggplant.blog.51cto.com/1446843/819576
http://bardo.iteye.com/blog/914110
源码安装Memcached服务器及其2种PHP客户端的更多相关文章
- 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展
上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...
- CentOS6源码安装zabbix服务器
1.下载安装包并解压 2.预环境搭建 3.创建zabbix用户,编译安装zabbix 4.配置mysql 5.配置zabbix-server 6.配置apache和php 7.添加开机自启动 1 yu ...
- 搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展
上一篇:搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展 一.安装MongoDB 1.创建mongodb用户组和用户 groupadd mongodb useradd -r -g ...
- mysql5.5.30源码安装及主从搭建
双机热备(实验环境) 主服务器:ip地址192.168.100.244,mysql版本5.5.30,源码安装 从服务器:ip地址192.168.100.245 一.源码安装mysql5.5 启动目录: ...
- 高级运维(六):源码安装Redis缓存服务、常用Redis数据库操作指令、配置Redis主从服务器
一.源码安装Redis缓存服务 目标: 本案例要求先快速搭建好一台Redis服务器,并测试该缓存服务器: 1> 设置变量test,值为123 2> 查看变量test的值 3> 设置计 ...
- Linux应用和系统库的2种安装方式---源码安装tarball和二进制rpm包
一.应用程序和系统库从哪里来? 两种机制,源码安装和二进制安装. 二.源码安装 tarball 1.核心思想是:利用开源代码,自己编译生成应用程序或者库,要求系统上必须已安装TMG(tar, make ...
- LNAMP服务器环境(源码安装)
在安装前先看下它们安装时所需要的依赖库:http://www.cnblogs.com/fps2tao/p/7699448.html 1.nginx源码安装 下载:http://nginx.org/en ...
- 国产龙芯服务器源码安装PostgreSQL数据库的方法
1. 公司最近有一些国产化项目的需求, 要求在国产CPU的服务器上面安装pg数据库等. 2.. 但是差查了下中标麒麟的官网,在龙芯MIPS的操作系统包源里面仅有 postgreSQL 9.2 版本的r ...
- CentOS7 实战源码安装mysql5.7.17数据库服务器
CentOS7 实战源码安装mysql5.7.17数据库服务器 简介:实战演练mysql数据库服务器的搭建 mysql简介: mysql是一个开源的关系型数据库管理系统,现在是oracle公司旗下的 ...
随机推荐
- javascript仿天猫加入购物车动画效果
javascript仿天猫加入购物车动画效果 注意:首先需要声明的是:代码原思路不是我写的,是在网上找的这种效果,自己使用代码封装了下而已:代码中都有注释,我们最主要的是理解抛物线的思路及在工作中 ...
- Stream探究
http://segmentfault.com/a/1190000003479884 1. 认识Stream Stream的概念最早来源于Unix系统,其可以将一个大型系统拆分成一些小的组件,然后将这 ...
- Spark-1.0.0 standalone分布式安装教程
Spark目前支持多种分布式部署方式:一.Standalone Deploy Mode:二Amazon EC2.:三.Apache Mesos:四.Hadoop YARN.第一种方式是单独部署,不需要 ...
- Entity Framework 自动生成CodeFirst代码
前言 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework Power To ...
- XSS代码触发条件,插入XSS代码的常用方法
1.脚本插入 (1)插入javascript和vbscript正常字符. 例1:<img src=”javascript:alert(/xss/)”> 例2:<table backg ...
- Python列表基础
==========列表基础=========== 列表中的数据是可以被修改的.字典,元组,集合是不能被修改的. >>> li1=['3edf','dafdas'] >> ...
- Android空间EditText的InputType属性
android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大的方便的操作.有时需要虚拟键盘只为字符或只为数字.所以inputType尤为重要. < ...
- [Effective JavaScript 笔记]第31条:使用Object.getPrototypeOf函数而不要使用__proto__属性
ES5引入Object.getPrototypeOf函数作为获取对象原型的标准API,但由于之前的很多js引擎使用了一个特殊的__proto__属性来达到相同的目的.但有些浏览器并不支持这个__pro ...
- JAVA-- M选N的组合算法
M选N的组合算法 只要每个数字出现一次就可以 举例 :也就是说123与321和213属于重复 只算一组 此算法已经排除了重复数据 应用--彩票的注数算法 本程序的思路是开一个数组b,其长度 ...
- JSoup——用Java解析html网页内容
当需要从网页上获取信息时,需要解析html页面.筛选指定标签,并获取其值是必不可少的操作,解析html页面这方面的利器,Python有BeautifulSoup,Java一直没有好的工具,之前的Htm ...