Composer 不安装 PHP 扩展,只管理 PHP 类库;需手动安装并启用 redis.so 等原生扩展,再通过 php -m 或 php -i 验证,最后按系统差异配置 extension 并重启服务。

Composer 本身不安装 PHP 扩展,它只管理 PHP 类库
这是最常被误解的一点:composer install 或 composer require 永远不会帮你装上 redis.so 这类原生扩展。它只能装像 predis/predis 或 phpredis/phpredis 这样的 PHP 封装包。如果你的项目写了 new Redis() 却报 Class 'Redis' not found,那说明系统没启用 redis 扩展,和 Composer 无关。
确认 PHP 是否已加载 redis 扩展
运行以下命令检查:
php -m | grep redis
或查看详细信息:
php -i | grep "redis"
如果无输出,说明扩展未启用。此时要分两步处理:
立即学习“PHP免费学习笔记(深入)”;
- Linux(如 Ubuntu/Debian):运行
sudo apt install php-redis,然后确保/etc/php/*/cli/conf.d/20-redis.ini存在且未被注释 - macOS(Homebrew + php@8.2):运行
pecl install redis,再确认extension=redis.so已写入php.ini(路径可用php --ini查) - Windows:下载对应 PHP 版本和线程安全(TS/NTS)的
php_redis.dll,放入ext/目录,并在php.ini中添加extension=php_redis.dll
改完配置后务必重启 Web 服务(如 Apache/Nginx)或 CLI 环境(终端重开)。
Magic CMS网站管理系统(政企版)采用PHP+Mysql架构,再原CMS系统的基础上精简出适合企业政府客户使用版本,继承了原系统的快捷,高效,灵活,实用的特点,保留了核心功能,系统支持自定义模版(极易整合dede模板)、支持扩展插件,自定义模型等功能,保留了文章模型,视频模型,图集模型,产品模型,能够胜任企业多种建站需求。BUG修复:1.修改了程序安装时部分数据无法正常导入的错误2.修改了程
用 Composer 安装 redis 的 PHP 封装包(可选但常见)
即使系统已启用 redis 扩展,你仍可能需要一个兼容 PSR-6/PSR-16 的客户端封装。这时才轮到 Composer 出场:
- 想直接调用原生
Redis类?不需要额外 Composer 包,只要扩展已启用即可 - 想用纯 PHP 实现、避免编译依赖?运行
composer require predis/predis,然后用Predis\Client - 想用官方维护的 phpredis 封装(含更多高级特性)?运行
composer require phpredis/phpredis—— 注意:这仍是 PHP 类库,不是扩展本身
示例(使用 predis):
$client = new \Predis\Client('tcp://127.0.0.1:6379');
$client->set('foo', 'bar');
常见报错与排查顺序
遇到 Class 'Redis' not found,按这个顺序查:
- 运行
php -v确认 CLI 使用的 PHP 版本,和 Web 服务器用的是否一致(常有多个 PHP 共存) - 运行
which php和php --ini,确认 CLI 加载的是哪个php.ini - 检查该
php.ini中是否有extension=redis(Linux/macOS)或extension=php_redis.dll(Windows),且路径正确 - 确认扩展文件真实存在(如
/usr/lib/php/20220829/redis.so),权限可读 - 不要在
composer.json里写"ext-redis": "*"就以为万事大吉——这只是声明依赖,不解决安装问题
真正卡住的地方,往往不是 Composer 命令输错了,而是 PHP 扩展路径、版本对不上,或者 CLI 和 FPM 用的不是同一套配置。










