站长论坛

标题: PHP-MemCache部署 [打印本页]

作者: tzlink    时间: 2008-12-1 16:18
标题: PHP-MemCache部署
Memcache是一个linux下面高速缓存的程序,可以大大提速动态程序的运行。



需要安装以下三个程序

Memcached memcached-1.2.4.tar.gz

Libevent    libevent-1.3e.tar.gz

Php-memcache memcache-2[1].2.3.tar.gz



一、memcached安装

首先是下载memcached了,目前最新版本是1.1.12,直接从官方网站即可下载到memcached-1.2.4.tar.gz。除此之外,memcached用到了libevent,我下载的是libevent-1.3e.tar.gz。

接下来是分别将libevent-1.3e.tar.gz和memcached-1.2.4.tar.gz解开包、编译、安装:

# tar zxvf libevent-1.3e.tar.gz# cd libevent-1.3e# ./configure --prefix=/usr# make# make install 测试libevent是否安装成功# ls -al /usr/lib | grep libevent  # tar zxvf memcached-1.2.4.tar.gz# cd memcached-1.2.4# ./configure --prefix=/usr# make# make install 测试memcached是否安装成功# ls -al /usr/bin/mem*





安装完成之后,memcached应该在/usr/bin/memcached

运行memcached守护进程:



/usr/bin/memcached -d -m 128 -l localhost -p 11211 -u root –c 526 –P/tmp/memcached.pid



-d以守护程序(daemon)方式运行memcached;
-m设置memcached可以使用的内存大小,单位为M;
-l设置监听的IP地址,如果是本机的话,通常可以不设置此参数;
-p设置监听的端口,默认为11211,所以也可以不设置此参数;
-u指定用户;

-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid,





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





/usr/bin/memcached/bin/memcached: error while loading shared libraries: libevent-1.3e.so.1: cannot open shared object file: No such file or directory   



便运行以下命令

# LD_DEBUG=libs /usr/bin/memcached –v



然后给libevent-1.3d.so.1建立一个链接:

# ln -s /usr/lib/libevent-1.3e.so.1 /lib64/libevent-1.3e.so.1





二、php-memcache安装

# tar zxvfmemcache-2[1].2.3.tar.gz

# /usr/bin/phpize

# ./configure --enable-memcache --with-zlib-dir

# make

# make install

在php.ini里加入extension=memcache.so





在/etc/rc.local每次启动的时候自动开启memcache

/usr/bin/memcached -d -u apache -m 1024 -c 8192 -l 192.168.20.120 -p 11211 –P /tmp/memcached.pid

/usr/bin/memcached -d -u apache -m 1024 -c 8192 -l 192.168.20.120 -p 11212

关掉memcached的进程

# kill ‘cat /tmp/memcached.pid’





<?php

$mem = new Memcache;

$mem->connect("127.0.0.1", 11211)or die ("Could not connect");



$mem->set('key', 'This is a test!', 0, 60);

$val = $mem->get('key');

echo $val;

?>




欢迎光临 站长论坛 (https://tzlink.com/bbs/) Powered by Discuz! X3.2