唉,找不到 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版本号