You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac通过pecl安装Redis后提示Class 'Redis'未找到,求解决方案

解决MacOS Mojave下PHP Redis扩展安装后无法找到Class 'Redis'的问题

你遇到的核心问题是Redis扩展虽安装成功,但未被当前使用的PHP版本正确加载,下面是一步步的排查和解决方法:

1. 确认命令行使用的PHP版本是否为php@7.2

Mac系统可能自带PHP,或者你安装了多个PHP版本,导致命令行调用的不是brew安装的php@7.2。先执行以下命令查看当前PHP版本:

php -v

如果输出版本不是7.2.31(你安装的php@7.2版本),需要把brew的php@7.2路径加到环境变量最前面。编辑你的~/.bash_profile或~/.zshrc(取决于你用的shell),添加:

export PATH="/usr/local/opt/php@7.2/bin:$PATH"
export PATH="/usr/local/opt/php@7.2/sbin:$PATH"

保存后执行source ~/.bash_profile或source ~/.zshrc生效,再重新执行php -v确认版本正确。

2. 检查PHP加载的php.ini文件路径

执行以下命令查看当前PHP使用的配置文件:

php --ini

重点看Loaded Configuration File这一行,确认它指向brew php@7.2的配置文件(通常路径是/usr/local/etc/php/7.2/php.ini或/usr/local/Cellar/php@7.2/7.2.31/etc/php.ini)。

如果加载的是系统自带的/etc/php.ini,说明pecl把扩展配置写到了错误的文件里,需要手动修正。

3. 确保Redis扩展已在正确的php.ini中启用

打开步骤2中找到的php.ini文件,搜索extension=redis,如果没有找到,添加以下内容:

extension="redis.so"

或者直接使用安装时显示的完整扩展路径:

extension="/usr/local/Cellar/php@7.2/7.2.31/pecl/20170718/redis.so"

另外,brew的PHP通常会加载conf.d目录下的配置文件,你也可以在/usr/local/etc/php/7.2/conf.d目录下创建一个redis.ini文件,内容同样是上面的扩展配置,这样更符合brew的配置规范。

4. 重启PHP服务并验证扩展是否加载

执行重启命令:

brew services restart php@7.2

然后执行以下命令查看已加载的扩展:

php -m

如果输出列表中有redis,说明扩展加载成功,再执行你的测试命令:

php -r "if (new Redis() == true){ echo \"\r\n OK \r\n\"; }"

此时应该能正常输出OK了。

5. 解决Laravel中的问题

Laravel无法找到Redis类通常也是因为它使用的PHP版本和你配置的不一致:

  • 如果你用Valet管理本地环境,执行valet use php@7.2切换到对应PHP版本,然后重启Valet:valet restart
  • 确认Laravel的config/database.php中的Redis配置正确(核心还是扩展加载问题,只要命令行PHP能正常使用Redis,Laravel配置无误就没问题)

内容的提问来源于stack exchange,提问作者sveti petar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:42:49