一.下载文件

    下载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执程序

    控制台输出结果如下:

  1. [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的更多相关文章

  1. Linux下安装、配置、启动与访问RabbitMQ

    一.下载 首先第一步要下载三个rpm安装包,为了方便安装与学习,给出下载途径 网盘网址:https://pan.baidu.com/s/18Z64Lb9KQpRh10RzqZBdoQ 提取码:094v ...

  2. 【转载】Linux下安装、配置、启动Apache

    原文地址:http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.html 安装Apache前准备: 1.检查该环境中是否已经存在httpd服 ...

  3. Linux下安装、配置、启动Apache

    http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.html#

  4. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  5. Linux下安装与配置Nginx

    一.准备 Nginx版本:nginx-1.7.7.tar.gz   请自行到官网下载对应的版本. 二.步骤 ♦在Linux新建一个queenLove用户 [root@localhost /]# use ...

  6. 在linux下安装并配置mysql数据库

    在linux下安装并配置mysql数据库 工具/原料   MySql5.6 CentOS 方法/步骤   1 查找以前是否安装有mysql,使用下面命令: rpm -qa|grep -i mysql ...

  7. 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 ...

  8. Linux下安装mantis配置指南【转】

    转自:http://blog.csdn.net/xabc3000/article/details/6858229 目录(?)[-] Linux下安装mantis配置指南 配置Linux下的Apache ...

  9. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...

随机推荐

  1. CSS Bugs 解决方案

    说明:本文档兼容性测试基础环境为:windows系统:IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51 Bugs及解决方案列表(以下实例默 ...

  2. linux应用于发展(下)

    X windows的特点 1.独立于操作系统. 2.网络特性. 3.源码开源. Unix图形环境主要还是CDE linux主要还是在网络应用和嵌入式上使用较多. 娱乐办公什么的去windows吧. 网 ...

  3. ARM的一些基本概念

    MPU介绍: mpu是一个芯片,重力加速器(加速度)和陀螺仪(角速度) iic总线.在板上有iic控制器 连接着 最多128个外设,每个外设有地址,可以通信. 寄存器: cpu中的寄存器是为了加快运算 ...

  4. The Earth Mover's Distance

    The EMD is based on the minimal cost that must be paid to transform one distribution into the other. ...

  5. linux chmod 命令

    Avril 首页 新随笔 管理 随笔 - 153  文章 - 1  评论 - 58 修改linux文件权限命令:chmod   Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何 ...

  6. 深入理解Spark RDD

    RDD是什么? RDD,全称是Reslilient Distributed Datasets,是一个容错的,并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区.同时,RDD还 ...

  7. 关于队列queue

    1.在多线程和多进程中都有queue.调用方式不同,使用方式一致: 线程中: import queue q = queue.Queue(maxsize = 2) 进程中: from multiproc ...

  8. LightOj 1289 - LCM from 1 to n(LCM + 素数)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1289 题意:求LCM(1, 2, 3, ... , n)%(1<<32), ...

  9. .NET 框架基本原理透析⑴

    .NET框架的核心便是通用语言运行时(CLR),顾名思义它是一个可被各种不同的编程语言所使用的运行时.CLR的很多特性可用于所有面向它的编程语言.比如,如果CLR用异常来报告错误,那么所有面向它的语言 ...

  10. IEnumerable、GetEnumerator、IEnumerator的理解

    概念文字性的东西,我们就不说了,这里我们来点具体的实例第呀: 实例一: using System; using System.Collections; using System.Collections ...