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

Laravel8使用phpredis执行config:clear报Class "Redis" Not Found错误

问题原因

1. CLI与Web环境的PHP扩展配置不一致

你Web接口能正常调用Redis,说明Web侧(PHP-FPM/PHP-CGI)的php.ini已经加载了phpredis扩展,但artisan命令走的是PHP CLI环境,两套环境用的是独立的php.ini配置,你的CLI环境没有启用phpredis扩展。
PhpRedisConnector.php第75行的代码是直接实例化phpredis扩展提供的全局Redis类,和Laravel的Redis门面无关,因此你注释门面别名的操作对这个错误没有影响,CLI下没有安装phpredis扩展就会直接报类不存在。

2. 服务提供者中执行了非必要的Redis操作

错误栈显示该错误由AppServiceProvider中调用getCachedValue触发,Laravel执行config:clear等artisan命令时会先启动所有服务提供者,此时不需要调用配置缓存逻辑,直接在boot/register方法中执行Redis操作会额外增加CLI命令的依赖要求。


解决步骤

  • 首先验证CLI环境是否安装phpredis扩展,执行命令:
php -m | grep redis

如果没有输出,执行php --ini找到CLI对应的php.ini文件,添加扩展加载配置(Linux/macOS加extension=redis.so,Windows加extension=redis.dll),重启终端后再次验证。

  • 调整AppServiceProvider中的逻辑,增加CLI运行判断,避免执行artisan命令时触发Redis操作:
// App\Providers\AppServiceProvider
public function boot()
{
    // 仅非CLI环境执行缓存读取逻辑
    if (! $this->app->runningInConsole()) {
        \App\Models\Setting::getCachedValue();
    }
}

内容的提问来源于stack exchange,提问作者Aayush Dahal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:24:03