mac 下安装PHP5.6 redis扩展遇到的坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Run_Function_Online/article/details/80343985
mac 自带的PHP版本是PHP7.1的,由于项目用的是PHP5.6的 所以就用brew 安装了PHP5.6 ,随着业务的需求,需要用到redis扩展。就开始摸索着安装PHP5.6 redis扩展。问题就来了
1:由于mac自身有PHP ,且版本是PHP7.1
在/usr/bin 下面的php php-config phpize 都是基于php7.1的 所以导致在你安装php5.6的时候 不管你怎么编译。怎么手动安装,怎么搜教程,就是不成功,后来看了一篇关于phpize的文章,https://newsn.net/say/phpize-howto.html 【万分感谢】才想到是不是在我每次编译安装redis的时候执行phpize的问题呢,看了这篇文章瞬间感觉自己哪里做错了。
2:原来是在执行phpize的时候,扩展编译时增加到了php7.1的扩展文件【20160303】里面去了,而php5.6的扩展包是【20131226】里面的。所以导致每次安装总是不成功,报的错也是莫名其妙。百度,谷歌都搜不到解决的答案。

解决方案:(这是我个人的电脑所遇到的问题,不知是否通用)
1:首先我把brew安装的PHP@56 /usr/local/Cellar/php@5.6/bin 目录下的 phpize 、php、php-config给复制到 /usr/bin 目录下【需注意在复制进去前需要把原有的这三个文件给重命名。不要删,备份着,免得以后升级PHP版本。再导致各种问题。】
2:修改 /usr/include/php 这原有的是PHP7 需要重命名。
/usr/local/Cellar/php@5.6/include 里面的php 文件复制到/usr/include 目录下。
3:重新编译安装PHPredis

cd /usr/local/reids
phpize
./configure --with-php-config=/usr/bin/php-config
sudo make
sudo make test
sudo make install
这时候会在当前目录下 modules 多出一个redis.so文件。需要把它复制到
/usr/local/Cellar/php@5.6/5.6.35/lib/php/20131226/ 这个目录下面。然后在php.ini 里加上
extension = redis.so
然后杀掉php进程 【这里需要注意的是,如果你是用brew启动的php进程,需要用brew命令去停止】
   brew services stop php@5.6

      sudo pkill php-fpm56

      重启php-fpm56

brew services start php@5.6
查看phpinfo就可以看到redis已经安装成功
或者执行 php -m | grep redis
#出现 redis 表示安装成功

展开阅读全文

没有更多推荐了,返回首页