安装php7.1和memcached记录

已有php版本 5.6 和 7.0,现在再安装一个7.1

sudo apt-get install php7.1-fpm

sudo apt-get install php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-mysql php7.1-mbstring php7.1-mcrypt php7.1-zip php7.1-fpm php7.1-ldap php7.1-tidy php7.1-recode php7.1-curl php7.1-intl

php -v 显示已经是7.1.20

我的环境已有如下几个memcached

服务器 是memcached -h 显示 memcached 1.4.25
客户端 包含memcached 和 libmemcached两个扩展
1:我使用pecl install memcached 安装了最新的3.0.4
2:由于memcached客户端依赖于libmemcached 所以我 apt-get install libmemcached-dev 安装了libmemcached 默认版本是1.0.18(也可以源码安装)

php7.0所跑的项目没有问题,但是php7.1的项目报错,memcached version need >= 1.0 导致zf2报这个错是因为memcached没有load成功

针对7.1问题开始排查:
最先想到的就是memcached的客户端可能太旧,所以
我下载了3.0.2的memcached客户端源码(我打算让php7.1跑单独跑这个3.0.2的客户端,上面的3.0.4其实也是后来用pecl安装的)
下载完解压后我进行如下几个命令
1: /usr/bin/phpize (后来才知道这个phpize是php7.0的,导致装完之后加载不了memcached,生成的so去到了7.0的extension dir里)
2:./configure –with-php-config=/usr/bin/php-config(这个php-config也是7.0的,所以也不对)
3:make && make install

我将生成so文件移到了phpinfo显示的extension_dir 即/usr/lib/php/20160303里面(7.0的是/usr/lib/php/20151012),问题依然存在。

用php -ini| grep memcache 显示
PHP Warning: PHP Startup: memcached: Unable to initialize module
Module compiled with module API=20151012
PHP compiled with module API=20160303
These options need to match in Unknown on line 0

我有返回去查看当时编译memcached时的命令,才发现都是用了php7.0的配置(phpize和php-config)
于是我 ll /usr/bin | grep php发现还没有phpize7.1和 php-config7.1(即便上面已经装了php7.1,因为php和php-dev是不一样的)

注:php-dev是用来开发php扩展的,提供一些用来开发、编译php扩展程序的必要php组件,一般是一些php源码的头文件和依赖库。而php就是php软件本身,提供php脚本执行的运行时环境(runtime)。

所以需要安装php-dev
apt install php7.1-dev
然后再次ll /usr/bin | grep php 发现phpize7.1和 php-config7.1已经有了。

再去到memcached的源码包哪里/usr/local/src
删除 memcached-3.0.2整个目录,重新解压,再次进入解压后的目录 memcached-3.0.2
1: /usr/bin/phpize7.1
2:./configure –with-php-config=/usr/bin/php7.1-config
3:make && make install
显示已经成功生成新的so文件。

问题搞定!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值