(转)memcache 安装 笔记
一、环境需求安装Memcached需要libevent库的支持,所以请在安装Memcached之前检查有没有安装libevent。测试环境还需要PHP的支持。
我的是CentOS5.4的系统,装好了apache、php。
二、下载相关软件
Memcached下载地址:http://www.danga.com/memcached/
memcachePHP模块下载地址:http://pecl.php.net/package/memcache
libevent 下载地址: http://www.monkey.org/~provos/libevent/我下载的版本分别是:memcached-1.4.5.tar.gz、memcache-3.0.5.tgz、libevent-2.0.9-rc.tar.gz
我在Windows系统下下载,然后samba上传到服务器。当然也可以用ftp。
三、安装
1、安装libevent
root@wxlccsu:# tar vxzf libevent-2.0.9-rc.tar.gz
root@wxlccsu:#cdlibevent-2.0.9
root@wxlccsu:#./configure
root@wxlccsu:#make
root@wxlccsu:# make install2、安装Memcached
root@wxlccsu:#tarvxzfmemcached-1.4.5.tar.gz
root@wxlccsu:#cdmemcached-1.4.5
root@wxlccsu:#./configure--prefix=/usr/local/memcached
root@wxlccsu:#make
root@wxlccsu:# make install安装完之后要启动服务
root@wxlccsu:#cd/usr/local/memcached/bin
root@wxlccsu:# ./memcached -d -m 50 -p 11211 -u root启动memcached出现状况
error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
在网上查了下
解决这个问题有如下方法:
1>首先find/-namelibevent-2.0.so.5找到缺少的链接文件到底在那儿。
2>LD_DEBUG=libs/usr/local/memcached/bin/memcached-v
3> 从Debug信息中就知道程序去哪里找链接库了。我这边程序去 trying file=/usr/lib/libevent-2.0.so.5 而我的链接库的实际存储位置是 /usr/local/lib/libevent-2.0.so.54>做一个软连接 ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.
5>搞定.
3、安装memcache PHP模块
root@wxlccsu:#tarvxzfmemcache-3.0.5.tgz
root@wxlccsu:# cd memcache-3.0.5root@wxlccsu:# find / -name phpize
/usr/bin/phpize
root@wxlccsu:# /usr/bin/phpizeroot@wxlccsu:# find / -name php-config
/usr/bin/php-config
root@wxlccsu:#./configure--enable-memcache--with-php-config=/usr/bin/php-config--with-zlib-dir
root@wxlccsu:#make
root@wxlccsu:# make install注:find / -name phpize find / -name php-config
这两个文件视具体路径而定
安装完后会有类似这样的提示:
Installing shared extensions: /usr/lib/php/modules/
把这个记住,然后修改php.ini,把
extension_dir = "./"
修改为
extension_dir = "/usr/lib/php/modules"
并添加一行
extension=memcache.so
重启apache
root@wxlccsu:# /etc/init.d/http.d restart
四、测试脚本自己写一个PHP程序测试一下吧
<?php
$memcache=newMemcache;//创建一个memcache对象
$memcache->connect('localhost',11211)ordie("Couldnotconnect");//连接Memcached服务器
$memcache->set('key','thisisatestbywxlccsu!');//设置一个变量到内存中,名称是key值是test
$get_value=$memcache->get('key');//从内存中取出key的值
echo $get_value;phpinfo();?>
通过浏览器查看此页面可以看到:this is a test by wxlccsu !
并且在php模块信息中可以看到memcache的相关信息。