2011-5-5 1、安装libevent memcached需要用到socked,依赖此安装libevent。检查服务器系统版本 #lsb_release -a CentOS release 5.5 (Final) 在安装之前需要安装gcc编译器 #yum install gcc 查看系统是否利用rpm源安装过libevent rpm -qa|grep libevent libevent-1.4.13-1 一般rpm源的软件比较旧,可以登录其网站下载最新稳定版本 http://monkey.org/~provos/libevent/ http://monkey.org/~provos/libevent-2.0.11-stable.tar.gz 现在最新稳定版本是2.0.11 在linux环境可以直接下载 #wget -c http://monkey.org/~provos/libevent-2.0.11-stable.tar.gz 在安装新版本之前 需要卸载原来默认安装的旧版本 #rpm -e libevent-1.4.13-1 --nodeps #忽略依赖删除 安装libevent #tar -zxvf libevent-2.0.11-stable.tar.gz #cd libevent-2.0.11-stable #./configure #make && make install 2、安装memcached 同理检查系统安装过 #rpm -qa | grep memcache php-pecl-memcache-2.2.3-1.el5_2 查看现在memcached版本 这里可以把其扩展删除,用源码编译安装 #rpm -e php-pecl-memcache-2.2.3-1.el5_2 我们这里memcached采用源代码编译安装的方式进行 然后编译安装 http://memcached.org/ http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz 下载资源 #wget -c http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz 安装memcached #tar -zxvf memcached-1.4.5.tar.gz #cd memcached-1.4.5 #./configure #make && make install 安装完成后再次查看 PS: 若要删除编译安装的版本,在源码包目录下 #make uninstall 或 #make clean 或 #make distclean 若都不提供,直接rm dir 新版本直接指定prefix,然后make && make install 3、当前用户的.bash_profile中添加环境变量 #vi ~/.bash_profile LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH 4 安装memcached的PHP扩展 上面查看memcached的时候,已经安装其扩展。版本差异不大,我就用方便的方式,使用yum安装memcached的PHP扩展。 #yum install php-pecl-memcache 安装完以后可以使用下面命令查看其扩展模块是否安装完全 #php -m | grep memcache memcache 未提示错误安装成功 版本2.2.3-1.el5_2 最后可以执行个php脚本测试,我在10.28.8.76上测试通过。 #vi test_memcached.php <?php $mem = new Memcache; $mem->connect('10.28.8.76', 12000); $mem->set('key', 'This is a memcache test!', 0, 60); $val = $mem->get('key'); echo $val; ?> #php test_memcached.php This is a memcache test! 表明可以使用 5、启动memcached 升级后需kill原来进程,重新启动 #ps aux|grep memcache root 14561 4.6 26.8 1130416 1057740 ? Ssl 11:00 8:24 /usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1000 -P /tmp/memcached.pid #kill 14561 下面重新启动 #/usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1000 -P /tmp/memcached.pid 具体参数如下 -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,这里是1024MB -u是运行Memcache的用户,当前为 root 的话,需要使用此参数指定用户。 -l是监听的服务器IP地址,如果有多个地址的话,这里指定服务器的IP地址10.28.8.76 -p是设置Memcache监听的端口,这里设置了12000 -c选项是最大运行的并发连接数,默认是1024,这里设置1000 -P是设置保存Memcache的pid文件 我在另一台服务器上,按指定路径安装后会提示以下错误,若不指定安装路径无问题。 /usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory 查找错误位置 #LD_DEBUG=libs /usr/local/bin/memcached -v 9041: find library=libevent-2.0.so.5 [0]; searching 9041: search cache=/etc/ld.so.cache 9041: 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) 9041: trying file=/lib64/tls/x86_64/libevent-2.0.so.5 9041: trying file=/lib64/tls/libevent-2.0.so.5 9041: trying file=/lib64/x86_64/libevent-2.0.so.5 9041: trying file=/lib64/libevent-2.0.so.5 9041: trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.5 9041: trying file=/usr/lib64/tls/libevent-2.0.so.5 9041: trying file=/usr/lib64/x86_64/libevent-2.0.so.5 9041: trying file=/usr/lib64/libevent-2.0.so.5 9041: /usr/local/memcached-1.4.5/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory 链接库 #ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 然后运行memcached #/usr/local/bin/memcached -d -m 1024 -u root -l 10.28.8.76 -p 12000 -c 1024 -P /tmp/memcached.pid 无错误提示 OK 查看其状态 #echo stats | nc 10.28.8.76 12000 STAT pid 2845 STAT uptime 22208 STAT time 1304582476 STAT version 1.4.5 …… 停止Memcache进程: #kill `cat /tmp/memcached.pid` 6、memcached压力测试工具memslap的安装 要使用memslap需安装libmemcached,其将自带memslap的工具。 官方网站与下载地址 最新版 http://libmemcached.org/libMemcached.html http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz 下载与安装 #wget -c http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz #tar -xzvf libmemcached-0.49.tar.gz #cd libmemcached-0.49 #./configure #make && make install 安装完成后查看是否安装成功 #ls /usr/local/bin/memslap /usr/local/bin/memslap 若存在则安装成功 查看memslap版本 #memslap -V memslap v1.0