今日clone下公司的代码一顿“点吧点吧”,有个功能需要定时发送公告,按照往常的操作配置了redis驱动,正要运行队列时出现了“[Exception] redis扩展未安装”【OMG我的redis已经安装了多少年了,你怎么能这样...】。
但还是默默的点开了浏览器输入了phpinfo
作为一个合格的程序猿下决心开始排查:(思路)
1、思路一:php的版本问题,可能是多版本造成的,打开终端输入php -v
再看phpinfo的
马上切换版本(mac终端运行‘source ~/.bash_profile’),再次查看php -v
再次运行队列 php think queue:listen --queue SendNotice 然而......[吐血]
这能难住坚(孤)韧(独)不(无)拔(助)的程序猿吗?再来!
2、思路二:命令行cli所使用的php.ini和服务器不一致
终端输入:php -m,发现真的没有redis,连我“早些年”安装的memcache和swoole都没有[流泪],继续排查。
直接用绝对路径指向php查看:/Applications/MAMP/bin/php/php7.3.9/bin/php -m
依旧没有看到想要的redis[抓狂]。
心烦意燥中随意翻阅这phpinfo,忽然发现了这个地方:
这一定是php-fpm和cli指向的php.ini不一致,
# 验证:终端输入
/Applications/MAMP/bin/php/php7.3.9/bin/php --ini
果然不一样,怎么办,复制一份过来[可爱]
cp /Library/Application\ Support/appsolute/MAMP\ PRO/conf/php.ini /Applications/MAMP/bin/php/php7.3.9/conf/
# 注意吧原先目录的php.ini重命名一下,避免出错。
# 完后各种重启
再次查看
/Applications/MAMP/bin/php/php7.3.9/bin/php -m
再次运行队列,SUCCESS(大家不要觉得绝对路径麻烦,生产环境中使用进程守护尽量写成绝对路径)
这个世界终于平静,程序猿的战争才刚刚开始!
希望大家遇到类似的问题可以向这几个方面考虑,不足之处请指出,有更合理优雅的办法快快向我砸来[憨笑]。
之后的发文会以开发中解决实际问题为主,大家可以点个关注多多交流。
END
本文暂时没有评论,来添加一个吧(●'◡'●)