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

    控制台输出结果如下:

  1. [[email protected] 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中, 如下:

    [[email protected] 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内容如下:    

    [[email protected] ld.so.conf.d]# cat libevent.conf

    /usr/libevent/lib

    配置完后执行以下ldconfig命令

    [[email protected] ~]#ldconfig

    3),如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下,  但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径).也可以使用如下解决方案:

      使用LD_DEBUG=help ./memcached -v来确定 加载的类库路径,方法如下:
                  LD_DEBUG=libs ./memcached -v 2>&1 > /dev/null | less

      

      系统会显示:

        

    [[email protected] 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

    一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.

    

  

时间: 2024-10-10 02:32:58

linux下安装及配置和启动memcached的相关文章

Linux下安装、配置、启动Apache

安装Apache前准备: 1.检查该环境中是否已经存在httpd服务的配置文件,默认存储路径:/etc/httpd/httpd.conf(这是centos预装的Apache的一个ent版本,一般我们安装源代码版的Apache).如果已经存在/etc/httpd/httpd.conf,请先卸载或者关闭centos系统自带的web服务,执行命令:chkconfig  httpd off,再或者把centos自带的httpd服务的80端口改为其他端口,只要不与我们安装的Apache服务的端口冲突就可以

linux 下安装编译配置 QT

打算做嵌入式图像处理,计划方案嵌入式Linux+OpenCV+QT,昨天简单入门OpenCV今天看看QT,QT就先弄Linux下面的,回家之前争取把基本的摸通,然后能在板子上跑起来. 软件环境 Linux:Ubuntu 12.04 X86 QT:4.8.4 关于QT安装 QT的早期版本和现在版本有点变化,提供的文件也不尽相同,最新的版本为5.0,我这里用的是4.8.4,一个完整的QT应该包括QT库.IDE也就是QT creator,在Linux下的安装中,目前看到的主要有三种方法: 1..bin

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

为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://www.cnblogs.com/wang-meng/p/5814798.html 8, 打开浏览器查看solr可视化界面 到了这里solr就配置好了, 可是我们的IK 分词器还没有配置呢, 如果不配IK分词器的话 它是怎样分词的呢? 我们就来先看一下:  每个字都分成了一个词, 这当然不是我们想要的结果

centos 6.5下安装、配置并启动SSH远程访问

centos 6.5下安装.配置并启动SSH远程访问 1.登录centos 6.5系统,使用root用户登录,如果为非root用户则执行su或su - 或su root或su - root切换为root用户. 2.查看SSH是否安装(检查是否装了SSH包). 输入命令:rpm -qa | grep ssh 如图所示说明centos 6.5系统已经为我们默认安装了SSH包. 注:若没安装SSH则可输入:yum install openssh-server安装. 3.查看SSH服务是否正在运行. 输

python开发之virtualenv与virtualenvwrapper(linux下安装与配置)

在使用python开发过程中,会经常碰到不同的工程依赖不同版本的库的问题,所以我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁 ----------virtualenv 一个可以帮助我们管理不同python环境的好工具,它可以在系统中建立多个不同并且相互不干扰的虚拟环境.  - 一 linux下安装,配置virtualenv 1.安装virtualenv pip3 install virtualenv 2.创建目录 mkdir Myproject cd Myproject

Linux下安装并配置PPTP客户端

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 在Linux上安装并配置PPTP客户端. 脚本 #!/bin/bash # 脚本作用:交互式自动安装PPTP客户端 # 作者:昨夜星辰 # 创建时间:2015-04-29 # 修改时间:2015-04-29 echo '请输入VPN服务器的相关信息:' echo '(温馨提示:在输入过程中,如果不小心输错了,那么只能通过Ctrl-C终止脚本

linux下svn服务器安装配置与启动

1. 采用源文件编译安装.源文件共两个,为: subversion-1.6.1.tar.gz  (subversion 源文件) subversion-deps-1.6.1.tar.gz  (subversion依赖文件) 注意文件版本必须一致,否则很容易产生各种奇怪的问题. 2. 上传以上两个文件到服务器上,解压.解压命令为:          tar xfvz subversion-1.6.1.tar.gz tar xfvz subversion-deps-1.6.1.tar.gz 3. 解

Snmp学习总结(六)——linux下安装和配置SNMP

一.安装SNMP 1.1.下载Net-SNMP的源代码 选择一个SNMP版本,比如5.7.1,下载地址如下:http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.1/,如下图所示: 下载完成之后得到如下图所示的一个压缩包 1.2.把压缩包传输到远程的Linux服务器 把压缩包使用FTP传输工具传输到远程的Linux服务器 上传成功后在linux的root目录下就可以看到压缩包了,如下图所示: 也可以在linux命令行窗口使用ls命

Linux下安装并配置SSH服务

一.使用命令检测Linux系统上是否已经安装了SSH服务:(命令:rpm -qa |grep ssh) 二.如果没有安装SSH软件包,可以通过yum 或rpm安装包进行安装(命令:yum install ssh) 三.安装完成后,启动SSH服务(命令:service sshd start 或 /etc/init.d/sshd start) 四.查看.编辑SSH服务配置文件(命令:vi /etc/ssh/sshd_config) 五.修改其默认端口号,修改为10022 使用VI命令按键盘上的“i”