PHP环境下安装Redis扩展:从服务器到PHP配置的完整指南

php环境下安装redis扩展:从服务器到php配置的完整指南

本教程旨在解决PHP环境中Redis扩展(ext-redis)安装与识别的常见问题。文章将详细指导如何安装Redis服务器、通过PECL安装PHP Redis扩展,并正确配置PHP以启用该扩展,确保其在PHP应用中正常运行,从而替代基于客户端库的解决方案,提升性能。

在开始安装之前,首先需要明确一个关键概念:Redis 服务器(Redis Server)和 PHP Redis 扩展(PHP Redis Extension,即 ext-redis)是两个不同的组件。

  • Redis 服务器: 这是一个独立的数据库服务,负责存储和管理数据。PHP Redis 扩展需要连接到正在运行的Redis服务器才能进行数据操作。
  • PHP Redis 扩展: 这是一个用C语言编写的PHP模块,提供了PHP与Redis服务器进行通信的API。它通常比纯PHP实现的客户端库(如Predis)具有更高的性能。

许多用户在尝试安装 ext-redis 时,可能只下载了扩展文件,却忽略了Redis服务器的安装,或者混淆了两者的安装步骤,导致扩展无法正常工作。

PHP Redis 扩展需要一个正在运行的Redis服务器才能工作。以下是在Linux/macOS环境下安装Redis服务器的步骤。对于Windows用户,通常建议下载官方预编译版本或使用WSL。

  1. 创建安装目录并下载Redis源码:

    立即学习“PHP免费学习笔记(深入)”;

    这里我们创建了一个名为 redis_install 的目录,并下载了最新稳定版的Redis源码包。

  2. 解压源码包:

    进入解压后的Redis源码目录。

  3. 编译和安装Redis:

    • make 命令会编译Redis源码。
    • make test 会运行单元测试,确保Redis功能正常,这一步可能需要一些时间。
    • sudo make install 将Redis的可执行文件(如 redis-server, redis-cli)安装到系统路径中(通常是 /usr/local/bin),以便全局调用。
  4. 启动 Redis 服务器:
    安装完成后,可以通过以下命令启动Redis服务器:

    若要让Redis在后台运行,可以使用配置文件启动:

    可以通过 redis-cli ping 命令来验证Redis服务器是否正在运行,如果返回 PONG 则表示成功。

在Redis服务器成功运行后,我们就可以安装PHP Redis扩展了。推荐使用PECL(PHP Extension Community Library)来安装,因为它能自动处理编译和依赖。

  1. 确保安装了PHP开发工具:
    在Linux系统上,您可能需要安装 php-dev 或 php-devel 包,以及 autoconf 等工具。

    • Debian/Ubuntu: sudo apt install php-dev autoconf
    • CentOS/RHEL: sudo yum install php-devel autoconf
    • macOS (通过Homebrew): brew install autoconf (PHP开发工具通常随PHP安装)
  2. 使用 PECL 安装 Redis 扩展:

    在安装过程中,PECL可能会询问一些问题,通常直接按回车键接受默认值即可。

  3. Windows 环境下的安装:
    对于Windows用户,通常不通过PECL编译安装。而是从 PECL 官网 下载预编译的 .dll 文件。

    • 访问PECL Redis页面,选择与您的PHP版本(例如PHP 7.4)和架构(x64/x86)、线程安全(TS/NTS)相匹配的最新稳定版。
    • 下载 .zip 文件,解压后找到 php_redis.dll 文件。
    • 将 php_redis.dll 复制到您的PHP安装目录下的 ext 文件夹中(例如 C:phpext)。

安装完扩展后,还需要在PHP配置文件中启用它。

  1. 定位 php.ini 文件:
    您可以使用 php --ini 命令来查找当前CLI环境使用的 php.ini 文件路径,或通过 phpinfo() 函数在Web服务器环境中查看。

    • 对于WAMP/MAMP等集成环境,通常会有多个 php.ini 文件,请确保修改的是当前Web服务器(如Apache)正在使用的那个。
  2. 编辑 php.ini 文件:
    使用文本编辑器打开找到的 php.ini 文件,并在其中添加一行:

    如果您在Windows上,则应为:

    确保 extension_dir 指令指向了您的PHP扩展目录(例如 /usr/lib/php/20190902 或 C:phpext)。

修改 php.ini 文件后,必须重启您的Web服务器(如Apache、Nginx、PHP-FPM)或WAMP/MAMP服务,以使更改生效。

  • Apache: sudo systemctl restart apache2 或 sudo service apache2 restart
  • Nginx + PHP-FPM: sudo systemctl restart nginx 和 sudo systemctl restart php-f7.4-fpm (根据您的PHP版本调整服务名)
  • WAMP/MAMP: 通过其控制面板重启所有服务。

最后一步是验证Redis扩展是否已成功加载。

  1. 通过命令行验证:

    如果输出中包含 redis,则表示扩展已成功加载。

  2. 通过 phpinfo() 验证:
    创建一个包含 <?php phpinfo(); ?> 的PHP文件(例如 info.php),将其放置在Web服务器的根目录,并通过浏览器访问。在输出页面中搜索 "redis",如果看到一个独立的 "redis" 配置块,则表示扩展已成功启用。

  • PHP 版本兼容性: 确保您安装的Redis扩展版本与您的PHP版本兼容。PECL通常会自动处理,但手动下载DLL时需特别注意。
  • extension_dir 配置: 确保 php.ini 中的 extension_dir 指令正确指向了您的PHP扩展存放目录。
  • 权限问题: 在编译和安装过程中,如果遇到权限错误,请检查您的用户权限或使用 sudo。
  • WAMP/MAMP 环境: 这些集成环境通常有自己的PHP版本管理和 php.ini 文件,请确保修改的是当前激活的PHP版本对应的 php.ini。
  • 错误日志: 如果扩展加载失败,请检查PHP的错误日志(通常在 php.ini 中配置 error_log)以获取详细错误信息。

通过遵循上述步骤,您应该能够成功在PHP环境中安装和启用Redis扩展,从而为您的PHP应用程序提供高效的Redis连接能力。

以上就是PHP环境下安装Redis扩展:从服务器到PHP配置的完整指南的详细内容,更多请关注php中文网其它相关文章!