php安装memcached扩展

PHP为了能够与memcached服务器端交互,有两个PHP扩展能够使用:memcache扩展和memcached扩展。安装两个中的任一个扩展均可与memcached服务器实现交互。memcached扩展比较新,相对来讲性能各方面可能会好一点。实际工做中,安装哪一个扩展最终可能仍是取决于开发人员使用的是哪一个扩展。我这里介绍如何安装两个中的memcached扩展。个人操做系统是CentOS 6.5版本的。php

 

给PHP 5.6安装memcached扩展

之前,使用PHP 5.6时,要安装memcached扩展,我一般是这样作的。html

 

一、先yum安装php-devel。这个php-devel包含了编译PHP扩展所需的文件。服务器

yum install php-develide

 

二、memcached扩展依赖于libmemcached库。这个libmemcached是C/C++语言写的memcached客户端工具和库。因此,使用yum安装libmemcached库:memcached

yum install libmemcached libmemcached-devel工具

 

三、而后,使用pecl命令直接自动化下载、编译和安装memcached扩展:性能

pecl install memcachedspa

# 如今,应该要指定特定版本才能安装成功,由于默认安装最新稳定版的扩展,而最新稳定版扩展示在是适用于PHP 7的操作系统

# 安装过程当中,会询问libmemcached的安装目录(含有include/libmemcached/memcached.h的目录),我这里是/usr目录。.net

 

四、最后,在php.ini配置文件中加上下面的语句,并重启PHP程序即大功告成:

extension=memcached.so

 

给PHP 7安装memcached扩展

可是,当使用PHP 7时,问题就来了。当我使用pecl命令安装memcached扩展时就报下面的错:

意思是说libmemcached不支持sasl,因此failed了,能够使用--disable-memcached-sasl选项来禁用这个检查。pecl自动安装改不了编译选项,那我就把memcached扩展包下载下来,手工编译吧。结果,一进行编译就报一大堆错误,大概应该就是程序语法不兼容吧。下面是示例截图:

但这就有点费解了,这是什么缘由啊。其实,若是把memcached扩展包下载下来,看里面的说明,就会发现,memcached 3.x版本扩展须要libmemcached 1.x及以上版本,而当前默认安装的就是memcached扩展3.0.3版本。

而我使用yum命令安装的libmemcached才0.31版本:

因此,结论是,libmemcached版本过低。因此仍是乖乖先编译一个高版本的libmemcached,再安装memcached扩展吧。

 

下面是给PHP 7安装memcached扩展的完整步骤。

一、先到libmemcached的官网http://libmemcached.org/libMemcached.html下载libmemcached安装包,1.x版本,建议是1.0.18或以上。我这里直接使用命令下载了:

wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz

解压:

tar -xvf libmemcached-1.0.18.tar.gz

编译安装到/usr/local/libmemcached目录:

cd libmemcached-1.0.18

./configure --prefix=/usr/local/libmemcached

make

make install

 

二、直接使用pecl命令安装适用于PHP 7的memcached扩展,我使用的是最新的memcached 扩展3.0.3稳定版:

pecl install memcached-3.0.3

# 在提示libmemcached directory [no]时,输入libmemcached的安装目录/usr/local/libmemcached

看,此次就成功编译并安装了:

 

三、最后,就在php.ini配置文件中加上下面的语句,并重启PHP程序就好了:

extension=memcached.so

相关文章
相关标签/搜索