今天没事,在虚拟机上安装memcache服务。不是十分顺利,这里记录一下,方便以后查看,有些内容来自于互联网。
一,安装libevent
# cd /tmp# wget http://www.monkey.org/~provos/libevent-1.3.tar.gz# tar -zxvf libevent-1.3.tar.gz# cd libevent-1.3# ./configure -prefix=/usr# make# make install
安装完成后测试libevent是否安装成功:
[root@CentOS ~]# ls -al /usr/lib | grep libeventlrwxrwxrwx. 1 root root 21 8月 13 15:10 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3-rwxr-xr-x. 1 root root 203681 8月 13 15:10 libevent-1.2.so.1.0.3lrwxrwxrwx. 1 root root 21 6月 12 18:03 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3-rwxr-xr-x. 1 root root 108948 8月 20 2010 libevent-1.4.so.2.1.3-rw-r--r--. 1 root root 267612 8月 13 15:10 libevent.alrwxrwxrwx. 1 root root 26 6月 12 18:03 libevent_core-1.4.so.2 -> libevent_core-1.4.so.2.1.3-rwxr-xr-x. 1 root root 37080 8月 20 2010 libevent_core-1.4.so.2.1.3lrwxrwxrwx. 1 root root 27 6月 12 18:03 libevent_extra-1.4.so.2 -> libevent_extra-1.4.so.2.1.3-rwxr-xr-x. 1 root root 84228 8月 20 2010 libevent_extra-1.4.so.2.1.3-rwxr-xr-x. 1 root root 805 8月 13 15:10 libevent.lalrwxrwxrwx. 1 root root 21 8月 13 15:10 libevent.so -> libevent-1.2.so.1.0.3[root@CentOS ~]#
还不错,都安装上了
二,安装memcached
# cd /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
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached然后测试是否成功安装memcached:
# 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的PHP扩展
# cd /tmp# wget http://pecl.php.net/get/memcache-3.0.6.tgz# tar vxzf memcache-3.0.6.tgz# cd memcache-3.0.6# /usr/local/webserver/php/bin/phpize # ./configure -enable-memcache -with-php-config=/usr/local/webserver/php/bin/php-config -with-zlib-dirmakemake install
上述安装完后会有类似这样的提示
Installing shared extensions: /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/
四,修改php.ini,我的路径为/usr/local/webserver/php/etc/php.ini
在代码底部加上
[extension]
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension=memcache.so
五,启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.3.252 -p 11211 -c 256 -P /tmp/memcached.pid
部分配置参数如下:(如需更多,请使用 -h)
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.3.252, -p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口, -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`
最后重启nginx或者apache,看你自己是什么web服务器。(有个奇怪的问题,我重启了nginx不起作用,reboot机器就好了)
在www根目录建立index.php文件,写入以下代码
<?php
$mem = new Memcache;$mem->connect("192.168.3.252", 11211);$mem->set('key','This is a test!', 0, 60);$val = $mem->get('key');echo $val;?>运行index.php文件,如果输出This is a test!就大功告成!