Linux CentOS7安装memcached

由于项目中需要供应商接入我们的服务器进行调试,他们项目环境用到memcached,所以我要在服务器上安装memcached但遇到了比较坑的问题,如下记录。

安装:

memcached依赖于libevent库

一、下载解压包:

libevent压缩包: wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
memcached压缩包:wget http://memcached.org/files/old/memcached-1.4.4.tar.gz

二、都解压到/usr/local;

三、先安装libevent,再安装memcached

  1. 先安装libevent:

cd libevent-2.0.22-stable

./configure –prefix=/usr

make && make install

测试libevent是否安装成功:

ls -al /usr/lib | grep libevent 看到类似下图说明安装成功:

Linux CentOS7安装memcached

2.再安装memcached:

cd memcached-1.4.22

./configure --with-libevent=/usr --enable-64bit --enable-threads

make && make install

注意

①在make编译时会报错:memcached.c: In function ‘process_bin_get’:
memcached.c:1193:9: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] 注意这个-Werror

出现此错误的原因是Makefile文件中做了 “视警告为错误”的配置 。

我们只需要利用vi修改 memcache安装目录下的Makefile文件即可:

查找并修改CFLAGS 的值,将-Werror参数去掉,保存退出再次执行make编译即可。

②默认memcached单个进程只支持到2G内存,需要更大内存支持的话,需要打开64位支持,编译的时候加参数:
–enable-64bit

测试是否安装成功:

ls –al /usr/local/bin/memcached 看到类似下图说明安装成功:

Linux CentOS7安装memcached

现阶段:安装完成memcached

启动memcached:(218:11211)

启动命令:/usr/local/bin/memcached -d -u root -l zjbigdata133 -p 11211 -P /tmp/memcache.pid

-d:后台运行

-p:监听端口

-P:设置保存Memcachepid文件。

启动报错:

[[email protected] memcached-1.4.4]# /usr/local/bin/memcached -d -u root -l zjbigdata133 -p 11211 -P /tmp/memcache.pid
/usr/local/bin/memcached: error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory
Linux CentOS7安装memcached
表示memcached找不到libevent-2.1.so.6的位置

解决方法:

  1. whereis libevent-2.1.so.6 查看这个文件的位置;

  2. 要知道memcached去是哪些目录查找libevent动态库的 :

    LD_DEBUG=libs /usr/local/memcached/bin/memcached -v

    打印如下类似信息:
    Linux CentOS7安装memcached
    可以看到memcached会去/lib64目录和/usr/lib64目录下找libevent-2.1.so.6文件,

我们只需把libevent-2.1.so.6链接到这两个目录

ln -s /usr/lib/libevent-2.1.so.6 /lib64/

ln -s /usr/lib/libevent-2.1.so.6 /usr/lib64

—————————————————————————————————————————————
本文为个人记录所用,如有侵权/错误,恳请指出 (╹▽╹)…