一、安装环境
CentOS Release 5.3
httpd-2.2.9
php-5.2.6
二、所需软件
libevent-1.4.9-stable.tar.gz (http://monkey.org/~provos/libevent/)
memcache-2.2.5.tar.gz (http://pecl.php.net/package/memcache)
memcached-1.2.7.tar.gz (http://www.danga.com/memcached/)
三、安装及配置
1、安装libevent
# tar xzvf libevent-1.4.9-stable.tar.gz
# cd libevent-1.4.9-stable
# ./configure --prefix=/usr
# make
# make install
2、测试 libevent 是否安装成功
# ls /usr/lib |grep libevent
libevent-1.1a.so.1
libevent-1.1a.so.1.0.2
libevent-1.4.so.2
libevent-1.4.so.2.1.2
libevent.a
libevent_core-1.4.so.2
libevent_core-1.4.so.2.1.2
libevent_core.a
libevent_core.la
libevent_core.so
libevent_extra-1.4.so.2
libevent_extra-1.4.so.2.1.2
libevent_extra.a
libevent_extra.la
libevent_extra.so
libevent.la
libevent.so
注意:版本不同,可能文件列表不同。
3、安装 memcached,同时需要安装中指定 libevent 的安装位置
# tar xzvf memcached-1.2.7.tar.gz
# cd memcached-1.2.7
# ./configure --with-libevent=/usr
# make
# make install
注意:安装完成后,会把 memcached 自动放到 /usr/local/bin/memcached 。
4、测试是否成功安装 memcached
# ls /usr/local/bin/memcached
-rwxr-xr-x 1 root root 123483 11-28 15:07 /usr/local/bin/memcached
5、安装 memcache 的PHP扩展
①安装PHP的 memcache 扩展
# tar xzvf memcache-2.2.5.tgz
# cd memcache-2.2.5
# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
# ./configure --enable-memcache -with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make
# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
②把 php.ini 中的 extension_dir = "./" 修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
③在 php.ini 中载入 memcache 扩展: extension=memcache.so
四、memcached 的基本配置
1、启动 memcache 的服务端:
# memcached -d -m 10 -u root -l 127.0.0.1 -p 12006 -c 256 -P /tmp/memcached.pid
参数说明:
-d选项:以守护程序(daemon)方式运行 memcached,
-m选项:是分配给 memcached 使用的内存大小,单位是MB,我这里是10MB。
-u选项:运行 memcache 的用户,我这里指定 root。
-l 选项:监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址127.0.0.1,
-p选项:设置 memcache 监听的端口,我这里设置了12006,最好是1024以上的端口。默认端口为1211,所以饿可以不设置此参数。
-c选项:最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P选项:设置保存 memcache 的pid文件,我这里是保存在 /tmp/memcached.pid
2、结束 memcache 进程,执行如下命令:
# kill `cat /tmp/memcached.pid`
备注:也可以启动多个守护进程,不过端口不能重复。
五、memcache 环境测试
运行下面的 php 文件,如果有输出 This is a test!,就表示环境搭建成功。
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 12006);
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
著名的PHPCMS同样支持 memcached 扩展:
<?php
//MemCache服务器配置
//define('MEMCACHE_HOST', 'localhost'); //MemCache服务器主机
//define('MEMCACHE_PORT', 11211); //MemCache服务器端口
//define('MEMCACHE_TIMEOUT', 1); //S,MemCache服务器连接超时
class cache
{
var $memcache;
function __construct()
{
$this->memcache = &new Memcache;
$this->memcache->pconnect(MEMCACHE_HOST, MEMCACHE_PORT, MEMCACHE_TIMEOUT);
}
function cache()
{
$this->__construct();
}
function get($name)
{
return $this->memcache->get($name);
}
function set($name, $value, $ttl = 0)
{
return $this->memcache->set($name, $value, 0, $ttl);
}
function rm($name)
{
return $this->memcache->delete($name);
}
function clear()
{
return $this->memcache->flush();
}
}
?>
六、参考资料
对Memcached有疑问的朋友可以参考下列文章:
Linux下的Memcache安装:http://www.ccvita.com/257.html
Nginx 0.8.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器: http://blog.s135.com/nginx_php_v5/
主要摘自:(LixiPHP)http://blog.lixiphp.com/centos-linux-memcache-nginx-php-install/