Linux 下php扩展memcache的相关步骤以及疑难解析

一、安装环境

    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/

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值