Non-static method Redis 报错

记录一次 redis 报错问题的解决过程。

受益匪浅;学了2节课,所有课程学下来,第一次碰到问题,感谢作者的辛苦付出!

use Redis 问题 :

在学习 L02 - 9.4 节的课程时,碰到一个报错,页面提示报错信息:

Fatal error: Non-static method Redis::keys() cannot be called statically)。

报错原因可能是:

经过搜索,发现问题可能是出在 composer 安装的 predis 和虚拟机中已安装的 redis 起冲突,经过半天时间排查,再经过半天的测试,找到2个解决方案,分别如下:

方案1:直接修改命名空间:

use redis

use Illuminate\Support\Facades\Redis;

方案2:使用 use redis ,但是需要注释掉 php 里面的 redis.ini 配置里面的:“ # extension redis.so ”,

1、修改方案前先在虚拟机输入命令:php -v 查看自己的 php 版本,

vagrant@homestead: $ php -v

2、我的是7.3版本,对应修改位置如下:
我的虚拟机修改位置:/etc/php/7.3/mods-available/redis.ini
3、修改命令 :

vagrant@homestead:$ cd /etc/php/7.3/mods-available$ ls

查看是否存在 redis.ini 文件,有的话打开编辑

vagrant@homestead:$ sudo vim redis.ini

在打开的文件里面注释下面这句:

# extension redis.so

修改后保存退出:“:wq”
4、退出虚拟机,并重新加载配置,重新启动虚拟机,然后刷新网站,之前的报错已经不再出现了,修复完成,问题解决!

vagrant@homestead: exit
> cd ~/Homestead && vagrant provision && vagrant reload
> vagrant ssh

附:参考文章地址

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!