首页
我的书签
首页
我的书签
游客
注册
登录
ai重写教程
Context Guardian 插件重构后数据重复推送与统计异常修复指南
观星频繁新会话通知原因
Piwigo集成MeiliSearch测试
不同版本的 PHP 分别安装 Redis
统一记忆与memo0实测
-
+
首页
不同版本的 PHP 分别安装 Redis
# 不同版本的 PHP 分别安装 Redis 扩展 在多 PHP 版本共存的环境下(如宝塔面板、LNMP 一键包等),每个 PHP 版本需要独立安装其 Redis 扩展。本文以常见的 PHP 7.4、8.0、8.1、8.2、8.3 为例,演示如何为每个版本分别编译安装 phpredis 扩展(版本 5.3.7),并完成配置与验证。 ## 环境检查 在开始安装前,确认服务器上已安装以下组件: - **多个 PHP 版本**:通过 `/usr/local/php` 或宝塔面板的 `/www/server/php` 目录管理 - **Redis 服务**:已安装并运行在默认端口 `6379` - **编译工具**:`gcc`, `make`, `autoconf` 等(可通过 `yum install -y gcc make autoconf` 安装) 查看当前 PHP 版本列表(宝塔面板示例): ```bash ls /www/server/php/ ``` 输出示例: ``` 74 80 81 82 83 ``` 检查 Redis 服务状态: ```bash systemctl status redis ``` 若未安装 Redis,先执行: ```bash yum install -y redis systemctl start redis systemctl enable redis ``` ## 安装 phpredis 扩展 phpredis 是 PHP 官方推荐的 Redis 客户端扩展,支持所有现代 PHP 版本。以下步骤为每个 PHP 版本独立编译安装。 ### 1. 下载 phpredis 源码 ```bash cd /usr/local/src wget https://github.com/phpredis/phpredis/archive/5.3.7.tar.gz tar xzf 5.3.7.tar.gz cd phpredis-5.3.7 ``` > **参考**:[phpredis GitHub 仓库](https://github.com/phpredis/phpredis) ### 2. 为每个 PHP 版本编译安装 假设 PHP 安装路径为 `/www/server/php/{版本号}`(宝塔默认路径),每个版本需执行以下操作: **以 PHP 7.4 为例**: ```bash # 清理之前编译产物(如有) make clean 2>/dev/null || true # 生成 configure 文件 /www/server/php/74/bin/phpize # 配置(--with-php-config 指向对应版本的 php-config) ./configure --with-php-config=/www/server/php/74/bin/php-config # 编译并安装 make -j$(nproc) && make install ``` 安装完成后会输出类似: ``` Installing shared extensions: /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/ ``` 重复上述步骤为其他 PHP 版本编译: **PHP 8.0**: ```bash make clean /www/server/php/80/bin/phpize ./configure --with-php-config=/www/server/php/80/bin/php-config make -j$(nproc) && make install ``` **PHP 8.1**: ```bash make clean /www/server/php/81/bin/phpize ./configure --with-php-config=/www/server/php/81/bin/php-config make -j$(nproc) && make install ``` **PHP 8.2**: ```bash make clean /www/server/php/82/bin/phpize ./configure --with-php-config=/www/server/php/82/bin/php-config make -j$(nproc) && make install ``` **PHP 8.3**: ```bash make clean /www/server/php/83/bin/phpize ./configure --with-php-config=/www/server/php/83/bin/php-config make -j$(nproc) && make install ``` > **说明**:`phpize` 用于生成 PHP 扩展的编译环境,每个 PHP 版本有独立的 `phpize` 和 `php-config`,必须使用对应版本的可执行文件。 ### 3. 启用扩展 在对应 PHP 版本的 `php.ini` 中添加或取消注释 `extension=redis`。 **编辑 Web 模式的 php.ini**(影响网站): ```bash # 例如 PHP 7.4 echo "extension=redis" >> /www/server/php/74/etc/php.ini ``` 其他版本同理: ```bash echo "extension=redis" >> /www/server/php/80/etc/php.ini echo "extension=redis" >> /www/server/php/81/etc/php.ini echo "extension=redis" >> /www/server/php/82/etc/php.ini echo "extension=redis" >> /www/server/php/83/etc/php.ini ``` **编辑 CLI 模式的 php.ini**(影响命令行执行): ```bash echo "extension=redis" >> /www/server/php/74/etc/php-cli.ini echo "extension=redis" >> /www/server/php/80/etc/php-cli.ini echo "extension=redis" >> /www/server/php/81/etc/php-cli.ini echo "extension=redis" >> /www/server/php/82/etc/php-cli.ini echo "extension=redis" >> /www/server/php/83/etc/php-cli.ini ``` > **注意**:部分环境(如宝塔)会自动同步配置,但建议手动确认两处文件均已添加。 ### 4. 重启 PHP-FPM 服务 每个 PHP 版本对应独立的 PHP-FPM 进程,需分别重启: ```bash systemctl restart php-fpm-74 systemctl restart php-fpm-80 systemctl restart php-fpm-81 systemctl restart php-fpm-82 systemctl restart php-fpm-83 ``` 若使用宝塔面板,也可通过面板「服务」页重启或执行: ```bash /etc/init.d/php-fpm-74 restart # 其他版本类似 ``` ## 验证安装 ### 列出已安装的扩展 使用对应版本的 `php -m` 命令检查 Redis 是否加载: ```bash /www/server/php/74/bin/php -m | grep redis /www/server/php/80/bin/php -m | grep redis /www/server/php/81/bin/php -m | grep redis /www/server/php/82/bin/php -m | grep redis /www/server/php/83/bin/php -m | grep redis ``` 每个命令应输出 `redis`。 ### 连接测试 编写测试脚本或直接使用命令行进行 Redis 连接测试: ```bash /www/server/php/83/bin/php -r ' $redis = new Redis(); $redis->connect("127.0.0.1", 6379); $redis->set("test", "Hello Redis"); echo $redis->get("test") . PHP_EOL; ' ``` 成功输出: ``` Hello Redis ``` ## 使用示例 ### PHP 连接 Redis 示例代码 ```php <?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 设置键值 $redis->set('site', 'Tech Tutorial'); // 获取键值 echo $redis->get('site'); // 输出:Tech Tutorial // 使用 Redis 其他数据结构 $redis->lPush('mylist', 'item1'); $redis->lPush('mylist', 'item2'); print_r($redis->lRange('mylist', 0, -1)); ?> ``` ### 命令行快速测试(指定 PHP 版本) ```bash /www/server/php/74/bin/php -r ' $r = new Redis(); $r->connect("127.0.0.1"); echo $r->ping() ? "PONG\n" : "Failed\n"; ' ``` ## 总结 - 每个 PHP 版本拥有独立的 `phpize` 和 `php-config`,编译扩展时必须指定对应版本。 - phpredis 源码只需下载一次,编译前使用 `make clean` 清理旧产物,然后为每个版本重新编译安装。 - 安装后需在 `php.ini` 中启用扩展,并重启对应版本的 PHP-FPM 服务。 - 通过 `php -m | grep redis` 和简单的连接测试确认安装成功。 最终安装结果示例: | PHP 版本 | 扩展目录 (no-debug-non-zts-xxxx) | 状态 | |----------|----------------------------------|------| | 7.4 | 20190902 | ✅ 已安装 | | 8.0 | 20200930 | ✅ 已安装 | | 8.1 | 20210902 | ✅ 已安装 | | 8.2 | 20220829 | ✅ 已安装 | | 8.3 | 20230831 | ✅ 已安装 | 所有版本 Redis 扩展均正常工作,可无缝使用 Redis 功能。
子墨
2026年6月11日 22:18
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
分享
链接
类型
密码
更新密码
有效期
Markdown文件
Word文件
PDF文档
PDF文档(打印)