
本教程旨在解决PHP应用中因缺少Redis扩展(ext-redis)而导致的依赖错误。文章将详细指导如何安装Redis服务器,进而安装并启用PHP Redis扩展,确保PHP应用能够顺利连接和操作Redis数据库,并提供验证方法和常见问题解决方案。
引言:理解 PHP Redis 扩展的重要性
在现代PHP开发中,Redis作为高性能的键值存储系统,常被用于缓存、会话管理、消息队列等场景。为了让PHP应用能够与Redis服务器进行交互,必须安装并启用PHP的Redis扩展(通常是php-redis或ext-redis)。当此扩展缺失时,Composer等依赖管理工具可能会报错,提示Root composer.json requires PHP extension ext-redis * but it is missing from your system. Install or enable PHP’s redis extension. 这意味着您的PHP环境未能提供所需的Redis客户端功能。本教程将提供一套完整的安装和配置流程,帮助您解决此类问题。
1. 安装 Redis 服务器
在安装PHP Redis扩展之前,您需要确保系统上已经安装并运行了Redis服务器。PHP扩展将通过网络协议连接到这个服务器。
以下是在类Unix系统(如macOS或Linux)上编译安装Redis服务器的步骤:
# 1. 创建并进入一个临时目录用于下载和编译 mkdir redis_install_temp && cd redis_install_temp # 2. 下载 Redis 稳定版源码包 # 注意:此URL可能随Redis版本更新而变化,建议访问redis.io获取最新稳定版链接 curl -O http://download.redis.io/redis-stable.tar.gz # 3. 解压源码包 tar xzvf redis-stable.tar.gz # 4. 进入解压后的目录 cd redis-stable # 5. 编译 Redis # make 命令会编译 Redis 服务器及其客户端工具 make # 6. 运行测试(可选,但推荐) # make test 会运行 Redis 的单元测试,确保编译结果的稳定性 make test # 7. 安装 Redis 到系统路径 # sudo make install 会将 Redis 可执行文件(如 redis-server, redis-cli)安装到 /usr/local/bin sudo make install
安装完成后,您可以通过运行redis-server命令来启动Redis服务器。为了生产环境的稳定性,通常会配置Redis作为系统服务启动。
立即学习“PHP免费学习笔记(深入)”;
2. 安装 PHP Redis 扩展
安装完Redis服务器后,接下来是安装PHP Redis扩展。根据您的操作系统和PHP环境,有几种常见的方法。
方法一:使用 PECL 安装 (推荐)
PECL (PHP Extension Community Library) 是PHP官方的扩展库,通过pecl命令可以方便地安装PHP扩展。
-
确保已安装 php-dev 或 php-devel 包:
在Debian/Ubuntu上:sudo apt-get install php-dev
在CentOS/RHEL上:sudo yum install php-devel
在macOS上,通常随PHP安装。 -
使用 pecl 命令安装 Redis 扩展:
sudo pecl install redis
登录后复制在安装过程中,可能会询问关于php_igbinary和php_msgpack的选项。通常可以直接按回车选择默认值。
方法二:手动编译安装
如果PECL安装遇到问题,或者您需要特定版本的扩展,可以手动从源码编译安装。
-
下载 PHP Redis 扩展源码:
访问 https://pecl.php.net/package/redis,下载对应PHP版本的Redis扩展源码包(例如 redis-5.3.7.tgz)。 -
解压并进入目录:
tar xzvf redis-X.X.X.tgz cd redis-X.X.X
登录后复制 -
准备编译环境:
phpize # 生成 configure 脚本 ./configure # 配置编译选项
登录后复制 -
编译并安装:
make sudo make install
登录后复制成功后,您会看到类似 Installing shared extensions: /usr/lib/php/20190902/ 的输出,这指示了扩展的安装路径。
方法三:针对 Windows 环境
对于WAMP、XAMPP等Windows集成环境,通常可以直接下载预编译的 .dll 文件。
-
下载对应 PHP 版本的 .dll 文件:
访问 https://pecl.php.net/package/redis。
选择与您的PHP版本、架构(x86/x64)和线程安全(TS/NTS)相匹配的 .dll 文件。例如,对于PHP 7.4 NTS x64,您需要找到 php_redis-X.X.X-7.4-nts-vc15-x64.zip。 -
解压 .dll 文件:
将下载的压缩包解压,找到 php_redis.dll 文件。 -
放置 .dll 文件:
将 php_redis.dll 复制到您的PHP安装目录下的 ext 文件夹中(例如 C:/wamp64/bin/php/php7.4.X/ext)。
3. 启用 Redis 扩展
无论是通过PECL、手动编译还是下载DLL,最后一步都是在 php.ini 文件中启用该扩展。
-
定位 php.ini 文件:
php.ini 文件是PHP的配置文件。您可以通过运行 php –ini 命令来查找其位置:php --ini
登录后复制输出会显示加载的 php.ini 文件路径,例如 /etc/php/7.4/cli/php.ini 和 /etc/php/7.4/apache2/php.ini。请确保修改的是您的Web服务器(如Apache或Nginx)或PHP-FPM使用的 php.ini 文件。在WAMP或MAMP中,通常可以通过其控制面板访问。例如,MAMP的错误信息中提到 /Library/Application Support/appsolute/MAMP PRO/conf/php8.1.13.ini。
-
编辑 php.ini 文件:
使用文本编辑器打开找到的 php.ini 文件,并在文件末尾或 Dynamic Extensions 部分添加以下行:- 对于 Linux/macOS:
extension=redis.so
登录后复制 - 对于 Windows:
extension=redis.dll
登录后复制如果您之前也安装了 igbinary 或 msgpack 扩展,也需要相应地启用它们:
extension=igbinary.so extension=msgpack.so
登录后复制
- 对于 Linux/macOS:
-
重启 Web 服务器/PHP 服务:
修改 php.ini 后,必须重启您的Web服务器(如Apache、Nginx)或PHP-FPM服务,以使更改生效。- Linux/macOS (Apache): sudo service apache2 restart 或 sudo systemctl restart apache2
- Linux/macOS (Nginx + PHP-FPM): sudo service php7.4-fpm restart 或 sudo systemctl restart php7.4-fpm
- WAMP/XAMPP: 通过其控制面板重启所有服务。
4. 验证安装
安装并启用扩展后,务必验证其是否已成功加载。
-
通过命令行验证:
运行以下命令:php -m | grep redis
登录后复制如果输出中包含 redis,则表示扩展已成功加载到CLI环境中。
-
通过 phpinfo() 验证:
创建一个名为 info.php 的文件,内容如下:<?php phpinfo(); ?>
登录后复制将此文件放置在您的Web服务器根目录,并通过浏览器访问(例如 http://localhost/info.php)。在输出页面中搜索 “redis”。如果找到一个 “redis” 部分,其中包含版本信息和配置详情,则表示扩展已成功加载到Web服务器环境中。
注意事项与常见问题
- PHP 版本兼容性:确保您下载的Redis扩展与您的PHP版本完全兼容。例如,PHP 7.4 的扩展不能用于 PHP 8.x。
- 线程安全 (TS/NTS):在Windows上,PHP分为线程安全(Thread Safe, TS)和非线程安全(Non Thread Safe, NTS)版本。请务必下载与您PHP版本匹配的扩展。
- php.ini 文件路径:确保您修改的是Web服务器或PHP-FPM实际加载的 php.ini 文件,而不是CLI版本的 php.ini。
- 服务重启:任何 php.ini 的修改都需要重启相应的PHP服务才能生效。
- Redis 服务器与 PHP 扩展的区别:Redis服务器是独立的后台进程,负责存储和管理数据;PHP Redis扩展是PHP的一个模块,提供API让PHP代码能够与Redis服务器通信。两者都必须正确安装和运行。
- WAMP/MAMP 菜单未显示:在WAMP等集成环境中,即使手动放置了 .dll 文件并修改了 php.ini,其菜单界面可能不会立即更新以显示新扩展。只要通过 phpinfo() 能看到扩展,就说明它已正常工作。
通过遵循本教程的步骤,您应该能够成功安装并启用PHP Redis扩展,从而解决PHP应用中因缺少该扩展而导致的各种问题。
以上就是PHP Redis 扩展安装指南的详细内容,更多请关注php中文网其它相关文章!


