一、安裝環境
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/