linux下安装及配置和启动memcached
一.下载文件:
下载memcached和libevent,放到/hom/zwl/目录下
# wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz
由于memcached需要Lievent的支持,so,首先对Libevent做个简单的介绍:
Libevent是一个轻量级的开源高性能网络库
上来当然要先夸奖啦,Libevent 有几个显著的亮点:
事件驱动(event-driven),高性能;
轻量级,专注于网络,不如ACE那么臃肿庞大;
源代码相当精炼、易读;
跨平台,支持Windows、Linux、*BSD和Mac Os;
支持多种I/O多路复用技术, epoll、poll、dev/poll、select和kqueue等;
支持I/O,定时器和信号等事件;
注册事件优先级;Libevent已经被广泛的应用,作为底层的网络库;比如memcached、Vomit、Nylon、Netchat等等。
好了,概念不多说了,开始安装。
1). 安装libevent
1.解压libevent-1.2.tar.gz文件
tar zxvf libevent-1.2.tar.gz
cd libevent-1.2
2.配置安装目录
./configure -prefix=/home/zwl/memcached/libevent
3.执行make , make install
4.校验:ls -al /home/zwl/memcached/libevent/bin |grep libevent,若出现以下信息,则安装成功
lrwxrwxrwx 1 root root 21 Oct 15 11:27 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 264104 Oct 15 11:27 libevent-1.2.so.1.0.3
-rw-r--r-- 1 root root 430428 Oct 15 11:27 libevent.a
-rwxr-xr-x 1 root root 805 Oct 15 11:27 libevent.la
lrwxrwxrwx 1 root root 21 Oct 15 11:27 libevent.so -> libevent-1.2.so.1.0.3
2) . 安装Memcached,同时需要安装中指定libevent的安装位置:
1.解压memcached-1.2.0.tar.gz文件
tar zxvf memcached-1.2.0.tar.gz
cd memcached-1.2.0
2.指定libevent位置,并指定memcached安装位置
./configure –with-libevent=/home/zwl/memcached/libevent -prefix=/home/zwl/memcached/memcached
3.make,make install
4.校验,执行如下命令:ls -al /home/zwl/memcached/memcached/bin/mem*
若出现以下效果则,安装成功!!!
-rwxr-xr-x 1 root root 113236 Oct 15 11:29 /home/zwl/memcached/memcached/bin/memcached
-rwxr-xr-x 1 root root 117583 Oct 15 11:29 /home/zwl/memcached/memcached/bin/memcached-debug
5.启动Memcached,执行如下命令
# memcached -d -m 3072 -u root -l 211.155.81.178 -p 11211 -c 4096 -P /data/memcacheddamaokeji/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,
2.如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,不过端口不能重复。
重启apache,service httpd restart
若启动时遇到问题,不要紧张,淡定!
./bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.
另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.
因为我已经安装了libevent,所以应该是程序按照默认共享路径库去找,但是没有找到导致的。
首先使用find命令找到libevent-1.4.so.2文件在哪儿
find /usr/ -name libevent-1.4.so.2
/usr/lib64/libevent-1.4.so.2 --上面命令执行结果
使用debug信息查看程序去哪里寻找共享文件库
LD_DEBUG=libs /home/zwl/memcached/memcached/bin/memcached -v
其中/home/zwl/memcached/memcached/bin/memcached:代表我的memcached执程序
控制台输出结果如下:
[root@localhost memcached]# LD_DEBUG=libs /home/zwl/memcached/memcached/bin/memcached -v
6513: search cache=/etc/ld.so.cache
6513: trying file=/lib/tls/i686/sse2/libevent-1.4.so.2
6513: trying file=/lib/tls/i686/libevent-1.4.so.2
6513: trying file=/lib/tls/sse2/libevent1.4.so.2
**********
**********
/home/zwl/memcached/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
根据debug日志可以看到,程序只会去/lib 和/usr/lib下去寻找需要的共享链接库。
而我的libevent是安装在/home/zwl/memcached/libevent/lib/下,所以memcache启动的时候并不知道该去这下面找,所以会报错
所以安装共享库后要注意共享库路径设置问题, 如下:
1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令
ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.
2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:
[root@localhost memcached]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
如上所示:/etc/ld.so.conf配置文件中内容只有一行,
ld.so.conf.d/*.conf的意思就是包含ld.so.conf.d/目录下以.conf为后缀的文件
所以我们可以在/etc/ld.so.conf.d目录下新建一个libevent.conf的配置文件,然后把libevent安装路径配置好
我的libevent内容如下:
[root@localhost ld.so.conf.d]# cat libevent.conf
/usr/libevent/lib
配置完后执行以下ldconfig命令
[root@localhost ~]#ldconfig
3),如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径).也可以使用如下解决方案:
使用LD_DEBUG=help ./memcached -v来确定 加载的类库路径,方法如下:
LD_DEBUG=libs ./memcached -v 2>&1 > /dev/null | less
系统会显示:
[root@localhost memcached]# LD_DEBUG=libs /home/zwl/memcached/memcached/bin/memcached -v
6513: search cache=/etc/ld.so.cache
6513: trying file=/lib/tls/i686/sse2/libevent-1.4.so.2
6513: trying file=/lib/tls/i686/libevent-1.4.so.2
6513: trying file=/lib/tls/sse2/libevent1.4.so.2
**********
**********
/home/zwl/memcached/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
我们看到,memcached会到很多地方去找,所以根据其它求,我们只需建一个软链接,指定到我们安装的类库上即可
方法如下:
ln -s /usr/local/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2
4) 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.
LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.
linux下安装及配置和启动memcached的更多相关文章
- Linux下安装、配置、启动与访问RabbitMQ
一.下载 首先第一步要下载三个rpm安装包,为了方便安装与学习,给出下载途径 网盘网址:https://pan.baidu.com/s/18Z64Lb9KQpRh10RzqZBdoQ 提取码:094v ...
- 【转载】Linux下安装、配置、启动Apache
原文地址:http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.html 安装Apache前准备: 1.检查该环境中是否已经存在httpd服 ...
- Linux下安装、配置、启动Apache
http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.html#
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- Linux下安装与配置Nginx
一.准备 Nginx版本:nginx-1.7.7.tar.gz 请自行到官网下载对应的版本. 二.步骤 ♦在Linux新建一个queenLove用户 [root@localhost /]# use ...
- 在linux下安装并配置mysql数据库
在linux下安装并配置mysql数据库 工具/原料 MySql5.6 CentOS 方法/步骤 1 查找以前是否安装有mysql,使用下面命令: rpm -qa|grep -i mysql ...
- Linux(4)- centos7安装python3、Linux下安装、配置virtualenv、确保开发环境的一致性、虚拟环境之virtualenvwrapper、vim
一.centos7安装python3 1.下载python3的源码包 下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz cd ...
- Linux下安装mantis配置指南【转】
转自:http://blog.csdn.net/xabc3000/article/details/6858229 目录(?)[-] Linux下安装mantis配置指南 配置Linux下的Apache ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...
随机推荐
- jQuery设计思想之取值和赋值
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js 查找关键字
查找:4种: 1. 查找固定关键字,仅返回位置,可指定开始位置: var i=str.indexOf("kword"[,starti]); str.lastIndexOf(&quo ...
- Lua语言
下载使用Subline作为编辑器 1. 2.函数使用 function sayHello() print ('hello torch') end 3.定义变量 a print (a) 4.引入文件 r ...
- C#中ref和out的使用与区别
C#中ref关键字和out关键字所实现的功能差不多,都是指定一个形参按照引用传递而不是实参的副本传递.但是二者适用场景还是有些区别的:out适合用在需要retrun多个返回值的地方,而ref则适合用在 ...
- Nosql学习笔记
1.利用Query查询,Query操作只搜索主键属性值,并支持对键属性值使用部分比较运算符,以优化搜索过程. * 查询结果始终按范围键排序.如果范围键的数据类型是数字,则会按数字顺序返回结果:否则,会 ...
- Django model '__week_day'与python datetime的weekday()
上周出了个bug,按星期几查询数据的时候,发现查到的数据与显示的星期几并不相符,后来发现代码中按星期几查询,有的地方用的是Django QuerySet提供的'__week_day',有的地方用的是p ...
- 【C++】类型转换(学习笔记)
1. 隐式类型转换,相关联的类型(e.g.int vs double)之间可以发生隐式类型转换. 比如,在条件中,非布尔类型转为布尔类型: 初始化时,初始值变为变量类型: 赋值时,右值变成左侧的类型: ...
- oracle 用户锁定及到期
select * from dba_users where username='HR'--查询用户状态 alter user HR identified by HR;--重新更新密码alter use ...
- JSP和Server的相互转化
[设计想法] [前置条件] 1. eclipse的web环境已经搭建OK 2. eclipse已经存在web项目"firstweb" [操作步骤] 1. "firstwe ...
- 【整理】虚拟机和主机ping不通解决办法
检查几个方面: 1.检查虚拟网卡有没有被禁用2.检查虚拟机与物理机是否在一个VMNet中3.检查虚拟机的IP地址与物理机对应的VMNet是否在一个网段4.检查虚拟机与物理机的防火墙是否允许PING, ...