前言
一。Memcached安装
首先说下,Memcache分为服务端和客户端。Memcached是服务端,安装在服务端的服务器上,而下面将要介绍的是客户端,安装在php环境下的服务器。
1、memcached下载:
http://memcached.org/downloads(官网下载地址),笔者下载的版本是memcached-1.4.21.tar.gz (2014-10-12)
2、libevent下载:
由于libevent需要使用,故需要下载,如果有了就不要下载了。地址为:http://www.monkey.org/~provos/libevent/。 这个是memcached安装需要的依赖
3、libevent安装:
由于这两个安装都不是很复杂,就只罗列命令了(解压就不介绍了,应该都知道):
进入libevent的安装目录,
./configure --prefix=/usr/local/libevent (/usr/local/libevent 是安装路径)
然后make, make install
4、memcached安装:
解压,进入目录,安装:
./configure --prefix=/usr/local/memcached
然后make, make install
二、安装php Memcache扩展
1、下载memcache(客户端):
地址为http://pecl.php.net/package/memcache,笔者下得版本是3.0.8
2、安装:
进入解压后的目录,笔者是/usr/local/memcache, php安装目录在/usr/local/php
执行命令
/usr/local/php/bin/phpize(在memcache目录下执行)
然后执行
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir,
make, make install。
在安装成功后将显示如下信息,记录下来,等下需要用到,如下:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
然后,
把php.ini中的extension_dir = "./"修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
然后
添加一行来载入memcache扩展:extension=memcache.so
注意,在/usr/local/memcache目录下,大家可能没有看到configure,所以会困惑如何执行./configure呢?其实configure是由php生成的,命名就是这个命令
/usr/local/php/bin/phpize。这个很多教程都没有说清楚,笔者也是找了很多资料在明白configure是怎么来的。
三、memcached的基本设置:
1.启动Memcache的服务器端:
/usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pid
这里解释下启动参数:
-d 选项是启动一个守护进程,
-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB
-M return error on memory exhausted (rather than removing items)
-u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户。
-l 是监听的服务器IP地址,默认为所有网卡。
-p 是设置Memcache的TCP监听的端口,最好是1024以上的端口
-c 选项是最大运行的并发连接数,默认是1024
-P 是设置保存Memcache的pid文件
-f <factor> chunk size growth factor (default: 1.25)
-I Override the size of each slab page. Adjusts max item size(1.4.2版本新增)
运行ps aux|grep memcached
若有memcached相关进程则说明成功!
2.如果要结束Memcache进程,执行:
kill `cat /tmp/memcached.pid`
3、重启apache:
service httpd restart
4、测试
运行下面的文件,如果有结果输出就是搭建成功了
< ?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);//11211上上面设置的监听端口
$mem->set('key', 'it does work!');
$val = $mem->get('key');
echo $val;
?>
三、结束语
四、参考:
希望以上对大家有帮助