php7.0编译memcached扩展

场景

系统自带的memcache.so扩展只适用于系统自带的php5.3,由于生产环境的php7.0是自己编译的,所以各种扩展也要重新编译生成

php的memcache客户端扩展有两种

1. memcache扩展

列表地址:http://pecl.php.net/package/memcache

源码包包直接下载地址:http://pecl.php.net/get/memcache

这个最新的版本也是2013年的了,下载编译了一下,报了一个 not found php_smart_str_public.h文件的错误,查看了一下 php安装目录下的 include/php/ext/standard 目录,发现这个头文件在php7.0中已经被改名为php_smart_string_public.h。由此可见这个memcache的客户端版本已太旧,不支持php7.0了

2. memcached扩展

列表地址:http://pecl.php.net/package/memcached

源码包直接下载地址:http://pecl.php.net/get/memcached

此外还有一个git维护地址 https://github.com/php-memcached-dev/php-memcached

这个包最新版本是2017年11月份更新的,是支持php7.0的。

下载流程

git clone https://github.com/php-memcached-dev/php-memcached

wget http://pecl.php.net/get/memcached

解压后将源码放入 /root 下或者 /home/用户目录下

编译流程

进入源码目录

#cd ~/php-memcached

调用phpize(根据实际phpize路径)

#/usr/local/php7.0/bin/phpize

configure目录

#./configure --with-php-config=/usr/local/php7.0/bin/php-config --with-zlib-dir

编译 & 安装

#make && make install

tips

因为memcached版本的扩展基于libmemcached,如果服务器上未安装,编译的时候会提示错误

解决方案就是yum安装即可

yum install libmemcached

yum install libmemcached-devel

成功

打开 php安装目录/lib/php/extensions/no-debug-zts-*/即可看到memcached.so扩展

然后再php.ini配置文件加载即可

标签:MemcachePHP 发布于:2019-10-29 12:23:41