宝塔面板PHP 8.0下无法一键安装Redis扩展,因官方源无适配预编译包且构建脚本不兼容ZTS/NTS、phpize路径及头文件要求;须用pecl手动编译redis-5.3.7+并正确配置php.ini。

宝塔面板 PHP 8.0 下无法通过「安装扩展」一键启用 Redis,是因为官方源里没有预编译的 redis 扩展包适配 PHP 8.0 —— 你点「安装」后大概率卡住或报错 configure: error: Cannot find php-config 或 make: *** No rule to make target 'install'。
为什么宝塔的「PHP扩展安装」对 PHP 8.0 + Redis 失效
宝塔内置的扩展仓库(/www/server/php/80/src/ext/)中,redis 模块默认未启用;且其一键安装脚本依赖旧版构建逻辑,不识别 PHP 8.0 的 phpize 路径和 ZTS 兼容性要求。即使手动触发,也常因缺少 pkg-config、autoconf 或头文件路径错误而中断。
- PHP 8.0 默认启用 Zend Thread Safety(ZTS),但多数 Redis 预编译包是 NTS 版本
- 宝塔调用的
phpize实际指向/www/server/php/80/bin/phpize,但扩展源码未自动适配该路径 - Redis 扩展从 5.3.7 开始才完全支持 PHP 8.0,旧版(如 5.3.4)编译会直接失败
正确做法:用 pecl 命令行手动编译安装(推荐)
跳过面板图形界面,直连服务器终端执行以下命令(确保已安装 gcc、make、autoconf):
cd /www/server/php/80 bin/phpize cd /tmp wget https://pecl.php.net/get/redis-5.3.7.tgz tar xzf redis-5.3.7.tgz cd redis-5.3.7 ../bin/php-config --prefix=/www/server/php/80 ./configure --with-php-config=/www/server/php/80/bin/php-config make && make install
完成后检查:ls /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so 存在即成功。
立即学习“PHP免费学习笔记(深入)”;
- 务必使用
redis-5.3.7或更高版本(5.3.6在 PHP 8.0.28+ 有兼容问题) -
no-debug-non-zts-20200930是 PHP 8.0 的扩展目录名,别硬写成zts—— 宝塔 PHP 8.0 默认是 NTS - 如果提示
php-config not found,先确认/www/server/php/80/bin/php-config是否可执行(权限 755)
装完后必须手动启用并重启 PHP
宝塔不会自动写入 php.ini,需人工补全两行:
extension=redis.so redis.session.locking_enabled = 1
位置在:/www/server/php/80/etc/php.ini,加在 [PHP] 区块下方任意位置即可。
- 改完必须执行
bt 16(宝塔快捷命令)或在面板点击「重载配置」,否则phpinfo()不显示 redis - 验证是否生效:运行
php -m | grep redis,有输出即成功;再查php --ri redis看版本 - 若 Laravel 或 ThinkPHP 报
Class 'Redis' not found,说明没重启 PHP-FPM 进程,不只是 reload nginx
最易被忽略的是:PHP 8.0 的 redis.so 必须匹配 NTS 架构,且 php.ini 中的 extension= 行不能带路径(只写 redis.so),否则宝塔启动时会静默跳过加载。



















