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

Ubuntu升级后Laravel报Class 'Redis'未找到问题求助

Laravel站点升级apt后Redis类找不到及数据库驱动问题解决建议

问题背景

在Ubuntu服务器执行sudo apt upgrade后,Laravel 9.45(PHP 8.1)站点崩溃,所有页面提示Class 'Redis' not found。已尝试以下操作但无效:

  • 执行sudo apt install php-redis,确认扩展已安装
  • 测试redis-cli ping返回PONG,Redis服务正常
  • 修改config/database.php中Redis客户端配置,无效果
  • 执行composer install predis/predis,确认predis已升级至v2.0.3
  • 多次重启服务器

补充信息:发现database.php配置被.env覆盖,将.env中REDIS_CLIENT从phpredis改为predis后,出现新错误:could not find driver,同时伴随数据库查询错误:select * from userswhereid= 77 andusers.deleted_at is null limit 1(77为当前用户ID)

解决步骤

1. 确认PHP Redis扩展是否真的加载成功

  • 执行php -m | grep redis,查看CLI环境下是否加载了redis扩展
  • 在站点根目录创建phpinfo.php文件,内容为<?php phpinfo(); ?>,访问该文件并搜索redis,确认Web环境下扩展是否加载
  • 如果CLI加载但Web环境未加载,重启PHP-FPM服务:sudo systemctl restart php8.1-fpm(根据你的PHP版本调整命令)

2. 修复php-redis扩展与PHP版本的匹配问题

apt upgrade可能更新了PHP或扩展版本,导致兼容问题:

  • 明确安装对应PHP8.1版本的redis扩展:sudo apt install php8.1-redis
  • 安装完成后再次执行php -m | grep redis确认加载,随后重启PHP-FPM和Web服务(如Nginx或Apache)

3. 处理predis模式下的数据库驱动问题

切换到predis后出现could not find driver,说明数据库驱动缺失,按以下操作排查:

  • 安装对应PHP版本的数据库扩展,以MySQL为例:sudo apt install php8.1-mysql
  • 重启PHP-FPM服务确保扩展加载
  • 检查.env文件中的数据库配置,确认DB_CONNECTION、DB_HOST、DB_PORT、DB_DATABASE等参数无误,未被升级操作误修改

4. 清除Laravel缓存

系统升级后缓存可能失效,执行以下命令清理各类缓存:

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
  • 如果执行时出现权限问题,切换到Web服务用户执行,例如:sudo -u www-data php artisan cache:clear

5. 检查PHP Redis配置文件

  • 找到PHP 8.1的redis配置文件,通常路径为/etc/php/8.1/mods-available/redis.ini
  • 确认文件中extension=redis.so未被注释,若有注释则去掉,之后重启PHP-FPM服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:40:44