Laravel 6.x 不安装 phpredis,仅依赖其已加载;需在 PHP 环境中匹配版本编译启用 phpredis 扩展(如 PHP 7.4 对应 phpredis 5.3.9),配置 redis.ini 启用,重启服务后通过 php -m | grep redis 验证。

Laravel 6.x 本身不参与 phpredis 的安装,它只依赖扩展是否已加载;你真正要做的,是在 PHP 环境里编译并启用 phpredis 扩展,Laravel 才能用 Redis facade 或 Cache::store('redis') 正常工作。
确认 PHP 版本和开发头文件是否齐备
phpredis 是 C 扩展,必须匹配当前运行的 PHP 版本(尤其是主版本号,如 7.4 / 8.0 / 8.1),且需要对应版本的 php-devel(或 php-dev)包提供头文件。缺一个就会在 phpize 或 make 阶段报错,比如:
-
Cannot find config.m4. Please run /usr/bin/phpize→ 缺php-dev -
fatal error: php.h: No such file or directory→php-devel没装或路径不对
操作前先确认:
php -v php-config --version php-config --extension-dir
然后装依赖:
立即学习“PHP免费学习笔记(深入)”;
- Debian/Ubuntu:
sudo apt install -y php-dev pkg-config - CentOS/RHEL/Rocky:
sudo yum install -y php-devel gcc make(注意:若用 PHP 8+,确保仓库启用了 Remi 或 EPEL)
下载、编译、安装 phpredis 源码
别直接 pecl install redis —— 它默认装最新版,可能不兼容 Laravel 6.x 所依赖的 PHP 版本(例如 PHP 7.2–7.4)。应手动拉取与你的 PHP 兼容的稳定分支:
- Laravel 6.x 常见搭配是 PHP 7.2–7.4,推荐 phpredis 5.3.7(最后支持 PHP 7.2 的版本)或 5.3.9(兼容到 PHP 7.4)
- 执行:
wget https://github.com/phpredis/phpredis/archive/refs/tags/5.3.9.tar.gz - 解压后进入目录:
cd phpredis-5.3.9 - 三步走:
phpize→./configure→make && sudo make install
成功后会输出类似:Installing shared extensions: /usr/lib/php/20190902/(路径取决于你的 PHP 版本 ID)
启用扩展并验证是否生效
编译只是把 redis.so 放进扩展目录,你还得告诉 PHP 加载它:
- 找到 PHP 的配置目录:
php --ini→ 看 “Loaded Configuration File” 或 “Scan for additional .ini files in” - 在该目录下新建
redis.ini,内容只有一行:extension=redis.so - 重启 PHP-FPM 或 Apache:
sudo systemctl restart php7.4-fpm(按实际服务名调整)
验证是否成功:
php -m | grep redis php -i | grep "redis version"
如果输出了版本号,说明扩展已就位。此时 Laravel 6.x 的 config/database.php 中 redis 连接配置就能正常用了。
常见报错和绕过坑点
编译或加载阶段最容易卡在这几个地方:
-
undefined symbol: redisClusterFree→ 你装了带 cluster 支持的 phpredis,但没装hiredis库;执行sudo apt install libhiredis-dev(Debian)或yum install hiredis-devel(RHEL),再重编译 -
Class 'Redis' not found→ 扩展名写错了,检查redis.ini里是extension=redis.so,不是extension=phpredis.so或漏了.so - Laravel 报
Connection refused但redis-cli -h 127.0.0.1 ping能通 → 不是 phpredis 问题,是 Laravel 配置里的host或port写错了,或 Redis 服务根本没跑在默认端口
最关键的细节是:phpredis 的版本号和 PHP 主版本号必须对齐,否则 make 可能静默失败,php -m 看不到模块,而错误日志里又没明显提示——务必用 php-config --version 和 phpredis 的 release note 交叉核对。



















