场景php
系统自带的memcache.so扩展只适用于系统自带的php5.3,因为生产环境的php7.0是本身编译的,因此各类扩展也要从新编译生成git
php的memcache客户端扩展有两种github
1.memcache扩展服务器
列表地址:http://pecl.php.net/package/memcachephp7
源码包包直接下载地址:http://pecl.php.net/get/memcachememcached
这个最新的版本也是2013年的了,下载编译了一下,报了一个 not found php_smart_str_public.h文件的错误,查看了一下 php安装目录下的 include/php/ext/standard 目录,发现这个头文件在php7.0中已经被更名为php_smart_string_public.h。因而可知这个memcache的客户端版本已太旧,不支持php7.0了.net
2.memcached扩展debug
列表地址:http://pecl.php.net/package/memcachedip
源码包直接下载地址:http://pecl.php.net/get/memcachedget
此外还有一个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配置文件加载便可