一、下载安装libevent
注意:以root用户身份操作
1、下载源码包
2、解压
tar zxvf libevent-2.0.21-stable.tar.gz
3、配置安装路径
cd libevent-2.0.21-stable
./configure -prefix=/usr
4、编译并安装
make
make install
5、测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
二、下载安装memcache
cd /tmp #切换到tmp目录
wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz #下载
tar zxvf memcached-1.2.0.tar.gz #解压
cd memcached-1.2.0 #切换到解压目录
./configure --with-libevent=/usr #配置
make #编译
make install #安装
ls -al /usr/local/bin/mem* #测试是否安装成功
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
显示以上信息,即已安装成功
三、启动memcache
/usr/local/bin/memcached -P /tmp/memcached.pid -d -m 20 -p 11211 -u root
各参数说明:
-d:启动一个守护进程
-m:分配给Memcache的内存大小,单位是M
-u:运行Memcache的用户
-l:监听的服务器IP地址
-p:Memcache的监听端口,最好是1024以上的端口
-c:最大并发数,默认是1024
-P:设置保存Memcache的pid文件,我设置的是保存在/tmp/memcached.pid
如果出现如下错误:
/usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory
即原因可能是memcached找不到libevent的位置
查看libevent的位置在哪
find / -name libevent-1.2.so.1
/usr/lib/libevent-1.2.so.1 查出来是在这里
注:Libevent版本不同,查询的文件名就不相同,具体要看memcache查找libevent路经时的文件名
然后查看memcache是在哪查找libevent的
LD_DEBUG=libs memcached -v
然后输出了一大堆信息
15008: find library=libevent-1.2.so.1 [0]; searching
15008: search cache=/etc/ld.so.cache
15008: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path)
15008: trying file=/lib64/tls/x86_64/libevent-1.2.so.1
15008: trying file=/lib64/tls/libevent-1.2.so.1
15008: trying file=/lib64/x86_64/libevent-1.2.so.1
15008: trying file=/lib64/libevent-1.2.so.1
15008: trying file=/usr/lib64/tls/x86_64/libevent-1.2.so.1
15008: trying file=/usr/lib64/tls/libevent-1.2.so.1
15008: trying file=/usr/lib64/x86_64/libevent-1.2.so.1
15008: trying file=/usr/lib64/libevent-1.2.so.1
看到memcache是在/usr/lib64/查找libevent的
所以创建链接
ln -s /usr/lib/libevent-1.2.so.1 /usr/lib64/libevent-1.2.so.1
再启动memcache
/usr/local/bin/memcached -P /tmp/memcached.pid -d -m 20 -p 11211 -u root
启动成功