唉,找不到Windows下Memcached的php扩展还是自己在Linux上编译吧!

想在Windows上安装个Memcached的php扩展真是找了好多地方都没找到,Windows上自己编译起来也非常的麻烦。算了吧还是Linux方便,走你:

Memcached扩展需要安装libmemcached,因为该扩展是依赖libmemcached的API。所以首先我们必须安装libmemcached:

1
2
3
4
5
6
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure
make
make install

安装完成后我们可以发现libmemcached被安装在了

1
/usr/local/include/libmemcached

接下来找到php中Memcached扩展页面http://pecl.php.net/package/memcached并下载

1
2
3
wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar xvzf memcached-2.2.0.tgz
cd memcached-2.2.0

在编译之前我们要确认php-devel是否已经安装,如果没有安装请使用(Centos)

1
yum install php-devel

安装;如果已经安装好接下来我们就可以编译了。

1
2
3
4
phpize
./configure --with-php-config=/usr/local/php-5.6.4/bin/php-config --disable-memcached-sasl
make
make test

然后我们可以在

1
/root/memcached-2.2.0/modules

目录下面找到 memcached.so,我们只需要将memcached.so移动到PHP环境所在的ext文件夹内然后再配置php.ini即可
注:以上安装过程中出现以下错误可以按下面的解决办法解决

1
2
3
#configure: error: no, sasl.h is not available. Run configure with --disable-memcached-sasl to disable this check
#如果出现上面错误则运行以下代码
yum install cyrus-sasl-devel

最后我们用php代码进行测试,代码如下:

1
2
3
4
5
$m = new Memcached();
$arr = array(array('127.0.0.1',11211));
$m->addServers($arr); //addServers可以同时添加多台服务器
print_r($m->getStats()); //打印服务器状态
print_r($m->getVersion()); //打印memcached版本号

我就想试试,没别的意思!