linux安装memcached和php的memcache扩展 ,已使用

所需软件

libevent-1.4.6-stable.tar.gz (http://monkey.org/~provos/libevent/)

memcache-2.2.3.tgz (http://pecl.php.net/package/memcache)

memcached-1.2.6.tar.gz (http://www.danga.com/memcached/)

安装配置

1. 安装libevent

# tar zxf libevent-1.4.6-stable.tar.gz

# cd libevent-1.4.6-stable

# ./configure --prefix=/usr/local/servers/libevent

# make && make install

2. 安装memcached

# tar zxvf memcached-1.2.6.tar.gz

# cd memcached-1.2.6

# ./configure --prefix=/usr/local/servers/memcached --with-libevent=/usr/local/servers/libevent

# make && make install

3. 运行memcached

# /usr/local/servers/memcached -d -m 128 -l localhost -p 11211 -u root (应该了/usr/local/servers/memcached/bin/memcached -d -m 128 -l localhost -p 11211 -u root )

-d 以守护程序(daemon)方式运行 memcached;

-m 设置 memcached 可以使用的内存大小,单位为 M;

-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;

-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;

-u 指定用户;

如果遇到运行memcached时遇到问题,错误提示如下:

/usr/local/servers/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

则运行 LD_DUBUG=libs 就可以知道memcached启动时库的加载路径。具体如下:

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

10929: find library=libevent-1.4.so.2 [0]; searching

10929: search cache=/etc/ld.so.cache

10929: search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib (system search path)

10929: trying file=/lib/tls/i686/sse2/libevent-1.4.so.2

10929: trying file=/lib/tls/i686/libevent-1.4.so.2

10929: trying file=/lib/tls/sse2/libevent-1.4.so.2

10929: trying file=/lib/tls/libevent-1.4.so.2

10929: trying file=/lib/i686/sse2/libevent-1.4.so.2

10929: trying file=/lib/i686/libevent-1.4.so.2

10929: trying file=/lib/sse2/libevent-1.4.so.2

10929: trying file=/lib/libevent-1.4.so.2

10929: trying file=/usr/lib/tls/i686/sse2/libevent-1.4.so.2

10929: trying file=/usr/lib/tls/i686/libevent-1.4.so.2

10929: trying file=/usr/lib/tls/sse2/libevent-1.4.so.2

10929: trying file=/usr/lib/tls/libevent-1.4.so.2

10929: trying file=/usr/lib/i686/sse2/libevent-1.4.so.2

10929: trying file=/usr/lib/i686/libevent-1.4.so.2

10929: trying file=/usr/lib/sse2/libevent-1.4.so.2

10929: trying file=/usr/lib/libevent-1.4.so.2

10929:

然后给libevent-1.4.so.2建立一个链接后再运行memcached:

# ln -s /usr/local/servers/libevent/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2

4. 安装php的memcache扩展

可以使用php自带的pecl安装程序

# /usr/local/servers/php5/bin/pecl install memcache (已使用这个,查看php whereis php)

也可以从源码安装

# tar zxf memcache-2.2.3.tgz

# cd memcache-2.2.3

# /usr/local/servers/php5/bin/phpize

# ./configure --enable-memcache=/usr/local/servers/memcached --with-php-config=/usr/local/servers/php5/bin/php-config --with-apxs2=/usr/sbin/apxs

# make && make inst

安装完后会有类似这样的提示:

Installing shared extensions: /usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/

把这个记住,然后修改php.ini,把

extension_dir = "./"

修改为

extension_dir = "/usr/local/servers/php5/lib/php/extensions/"

并添加一行

extension="no-debug-non-zts-20060922/memcache.so" (注意是否有non啊,已踩此坑)

附加功能:

1、查看启动的memcache服务:

netstat -lp | grep memcached

2、查看memcache的进程号(根据进程号,可以结束memcache服务:“kill -9 进程号”)

ps -ef | grep memcached