正好在看缓存,看到memcached,就试着在服务器上安装一下php的扩展。但是我安装失败了。。。
网上的文章都没有完整的介绍如何配置centos下php的memcached使用环境,所以这里将自己成功配置的经验写下来。
安装memcached
首先是安装memcached数据库本身。
我们在centos下可以通过yum下载memcached数据库本身:#yum search memcached#yum -y install memcached
安装成功后,通过下面命令可以查看帮助信息:#memcached -h 1
将memcached加入启动列表:#chkconfig --level 2345 memcached on
配置memcached文件:#vi /etc/sysconfig/memcached
文件内容如下:PORT=”11211”USER=”root”MAXCONN=”1024”CACHESIZE=”64”OPTIONS=””
分别代表端口号、用户名、同时最大连接数、使用的内存大小和附加的参数。
首先要启动 memcached,
可以通过以下命令查看memcached状态:#memcached-tool 127.0.0.1:11211 stats
效果如下:
说明memcached已经成功安装。
接下来是配置php的memcached扩展了。
php的memcached扩展是基于libmemcached,所以要先安装libmemcached.
下载软件
首先我们需要下载libmemcached:#wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
然后需要下载php-memcached扩展:#wget http://pecl.php.net/get/memcached-2.2.0.tgz
安装libmemcached
找到我们刚才下载的libmemcached-1.0.18.tar.gz
解压:#tar zxcf libmemcached-1.0.18.tar.gz
进入目录:#cd libmemcached-1.0.18
然后配置路径并安装:# ./configure --prefix=/usr/local/libmemcached --with-memcached
#make
#make install
这个过程需要花费几分钟,耐心等待,成功后,可以找到该路径:
说明安装成功。
安装php-memcached扩展
找到刚才下载的memcached-2.2.0.tgz
将其解压:#tar zxvf memcached-2.2.0.tgz
然后进入该目录:#cd memcached-2.2.0.tgz
找到自己的phpize路径:# find / -name “phpize”
这里我的结果是
所以接下来配置:# /usr/bin/phpize
然后配置路径并安装:# ./configure --enable-memcached --with-php-config=/usr/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached#make#make install
安装完成后。需要找到php.ini文件,加上:extension=memcached.so
再重启apache:service apache restart
因为我是Nginx,重启后。没有。。。。。老是报错PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: cannot open shared object file: No such file or directory in Unknown on line 0
改掉这个问题后,又来新的问题
php -v
PHP Warning: PHP Startup: memcached: Unable to initialize module
Module compiled with module API=20131226
PHP compiled with module API=20100525
These options need to match
in Unknown on line 0
简直折腾了一天,试了各种方案,无功而返,放弃了。。。。。
就可以在页面中通过输出php_info()来查看到memcached扩展安装成功:
测试memcached
安装成功后,我们通过代码测试memcached是否正常工作:<?php $mem = new Memcached();if(!$mem->addServer('127.0.0.1',11211))
{
die('连接失败!');
}$mem->set('name','lf');
var_dump($mem->get('name'));
页面输出结果为:string(2) "lf"
说明memcached已经安装成功并且正常工作。