Amazon Linux环境下PHP 8.x无法安装PHP Redis模块求助
问题:Amazon Linux 2 + PHP 8.0 安装PHP Redis模块失败
问题背景
在Amazon Linux 2系统部署应用时,安装PHP Redis模块环节失败,系统已安装PHP 8.0(来自amzn2extra-php8.0源)。
报错信息
---> Package php-pecl-redis.x86_64 0:2.2.8-1.el7 will be installed --> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-redis-2.2.8-1.el7.x86_64 --> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-redis-2.2.8-1.el7.x86_64 --> Finished Dependency Resolution Error: Package: php-pecl-redis-2.2.8-1.el7.x86_64 (epel) Requires: php(zend-abi) = 20100525-64 Installed: php-common-8.0.27-1.amzn2.x86_64 (@amzn2extra-php8.0) php(zend-abi) = 20200930-64 Available: php-common-5.4.16-43.amzn2.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 Available: php-common-5.4.16-43.amzn2.0.1.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 ..
当前可用包情况
执行yum update后,查询到的PHP Redis包仅为EPEL源的旧版本:
yum list | grep "php\-pecl\-redis*" php-pecl-redis.x86_64 2.2.8-1.el7 epel
问题原因
EPEL源提供的php-pecl-redis-2.2.8-1.el7是为PHP 5.4编译的(依赖php(zend-abi)=20100525-64),而当前系统的PHP 8.0使用的是zend-abi=20200930-64,ABI版本不兼容,导致依赖校验失败。
解决方案
方法1:通过PECL编译安装适配PHP 8.0的Redis模块
- 安装编译依赖和Redis服务:
sudo yum install -y php8.0-devel gcc make redis
- 使用PECL安装Redis扩展:
sudo pecl install redis
- 启用Redis扩展:
- 创建扩展配置文件:
echo "extension=redis.so" | sudo tee /etc/php.d/40-redis.ini - 重启PHP服务(根据实际环境选择):
- 若使用PHP-FPM:
sudo systemctl restart php-fpm- 若使用Apache:
sudo systemctl restart httpd - 验证安装:
php -m | grep redis
若输出redis则安装成功。
方法2:使用对应PHP版本的第三方源(可选)
部分第三方源(如Remi)提供适配PHP 8.0的预编译Redis包,但需额外配置源,新手更推荐方法1以避免源配置混乱。
内容的提问来源于stack exchange,提问作者Rob Wilkinson
相关产品推荐
相关产品推荐

