首页 » LANMP » 正文

安装php-memcached扩展(php7分支)

先git clone 该扩展
https://github.com/php-memcached-dev/php-memcached

通过官方网站我们发现,还需要安装
libmemcached (这个其实才是真正的memcached客户端,PHP中的扩展也需要调用它来访问memcached)
memcached (服务端)

 

安装一些基本依赖

1.autoconf : 生成配置脚本的工具 (譬如我们使用的./configure文件就需要它来生成)

2.Zlib:压缩函数调用库

 

安装libmemcached

官网:http://libmemcached.org/libMemcached.html
我们可以进入官网,下载

进入目录后执行,

然后

最后

一般来说,到这里就编译成功了.但是由于我的gcc版本比较高,所以需要对源码略作修改.
系统:Ubuntu18.04 LTS
GCC:gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)
libmemcached:libmemcached-1.0.18

make后,报错如下:

clients/memflush.cc:42:22: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
if (opt_servers == false)
^~~~~
clients/memflush.cc:51:24: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
if (opt_servers == false)
^~~~~

将clients/memflush.cc的42行和51行作如下修改:

然后再次make,编译通过.

参考自:https://bugs.launchpad.net/libmemcached/+bug/1663985

 

开始安装php-memcached扩展

进入   文件夹
执行  (切换到php7分支)

可能会出现一个错误

这是一个用于验证、数据完整性检查和加密的机制。需要单独安装,我们这里先屏蔽

如果没错误,执行
然后执行
结果:

 

怎么确定PHP的配置文件在哪?

网上很多都说在/etc/php.ini 或者/usr/local/php/php.ini
都是不准确的。真正要看 就要去 看php-config这个脚本文件,这是你在编译PHP时生成的一个原始配置记录文件。

打开后我们发现了:

说明PHP会在这个文件夹下寻找 php.ini (我们可以到下载的PHP源码中找到一个模板配置文件)

这样我们配置文件就有了。最好把这个文件的所有者改成我们自己

来到bin目录执行 php -m就可以赤裸裸的看到 装好啦
 

顺便说下,php5.6.30这个版本的php-memcached扩展怎么安装

首先,依然是安装基本依赖,然后安装libmemcached(这个是必装的)

进入
https://github.com/php-memcached-dev/php-memcached
会发现还有两个可选的库(选装)
igbinary: https://github.com/igbinary/igbinary
msgpack:https://msgpack.org/

依然是把项目clone下来

进入   文件夹
不过这次进入的是REL2_0分支
执行  (切换到REL2_0分支)

“预编译”

如果没错误,执行
然后执行

结果:

别忘了把扩展写进php.ini配置文件.

发表评论

正在加载验证码......

请先完成验证