2019独角兽企业重金招聘Python工程师标准>>>
场景
系统自带的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配置文件加载即可