centos系统为php安装memcached扩展

  1. 通过yum安装
    yum -y install memcached
    安装完成后执行:
    memcached -h
    出现memcached帮助信息说明安装成功

  2. 加入启动服务
    chkconfig --level 2345 memcached on

  1. 配置Memcached
    vim /etc/sysconfig/memcached
    文件中内容如下,按需要修改:
    PORT=”11211” #端口
    USER=”root” #用户名
    MAXCONN=”1024” #最大连接数
    CACHESIZE=”64” #内存大小
    OPTIONS=”” #附加参数

  2. 安装libmemached

    1
    2
    3
    4
    5
    wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz
    tar -zxvf libmemcached-1.0.16.tar.gz
    cd libmemcached-1.0.16
    ./configure -prefix=/usr/local/libmemcached -with-memcached
    make && make install

    报错:g++: command not found的解决
    yum -y install gcc+ gcc-c++
    make clean后,重新执行:make && make install

  3. 安装php-devel
    yum install php-devel

  4. 安装PHP Memcached扩展

    1
    2
    3
    4
    5
    6
    wget http://pecl.php.net/get/memcached-2.1.0.tgz
    tar -zxvf memcached-2.1.0.tgz
    cd memcached-2.1.0
    /usr/local/php/bin/phpize
    ./configure -enable-memcached -with-php-config=/usr/local/php/bin/php-config -with-zlib-dir -with-libmemcached-dir=/usr/local/libmemcached -prefix=/usr/local/phpmemcached
    make && make install

    报错:memcache support requires ZLIB解决办法
    yum install zlib-devel

记录下安装成功后的提示,类似于:
Installing shared extensions: /usr/lib/php/modules/

7.增加扩展extension配置文件
vi /etc/php.d/memcached.ini
增加1行
extension=memcached.so
最后验证一下是否安装完成
php -m|grep memcached
应该会显示memcached

8.重启nginx/apache,重启php-fpm,使用phpinfo()查看memcached模块是否安装成功。

memcached能启动但无法用php连接的问题(浏览器打开包含memcached的页面,firebug报500错误)
1.SELINUX=enforcing 改为 SELINUX=disabled
2.在终端尝试使用:telnet localhost 11211或者telnet 127.0.0.1 11211来连接到memcached的服务器
如果提示bash: telnet: command not found
执行:yum install telnet -y,再次回到浏览器尝试打开。

测试脚本:

1
2
3
4
5
6
<?php  
$m = new Memcached;
$m->addServer('127.0.0.1', 11211);
$m->set('foo', 200);
var_dump($m->get('foo'));
?>