Amazon Linux 2下PHP 8.0安装php-pecl-oauth遇依赖错误求助
问题描述
执行sudo yum install php-pecl-oauth时触发依赖错误,提示缺少php(api)和php(zend-abi)。已尝试安装Amazon软件包仓库中所有可用的php-common变体,问题仍未解决,需明确错误含义及可行的解决办法。
错误详情
Error: Package: php-pecl-oauth-1.2.3-8.el7.x86_64 (epel) Requires: php(api) = 20100412-64 Installed: php-common-8.0.20-1.amzn2.x86_64 (@amzn2extra-php8.0) php(api) = 20200930-64 Available: php-common-5.4.16-43.amzn2.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-5.4.16-43.amzn2.0.1.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-5.4.16-43.amzn2.0.2.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-5.4.16-43.amzn2.0.3.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-5.4.16-43.amzn2.0.4.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-5.4.16-45.amzn2.0.5.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-5.4.16-45.amzn2.0.6.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-5.4.16-46.amzn2.0.2.x86_64 (amzn2-core) php(api) = 20100412-64 Available: php-common-8.0.0-2.amzn2.x86_64 (amzn2extra-php8.0) php(api) = 20200930-64 Available: php-common-8.0.2-1.amzn2.x86_64 (amzn2extra-php8.0) php(api) = 20200930-64 Available: php-common-8.0.6-1.amzn2.x86_64 (amzn2extra-php8.0) php(api) = 20200930-64 Available: php-common-8.0.8-1.amzn2.x86_64 (amzn2extra-php8.0) php(api) = 20200930-64 Available: php-common-8.0.13-1.amzn2.x86_64 (amzn2extra-php8.0) php(api) = 20200930-64 Available: php-common-8.0.16-1.amzn2.x86_64 (amzn2extra-php8.0) php(api) = 20200930-64 Available: php-common-8.0.18-1.amzn2.x86_64 (amzn2extra-php8.0) php(api) = 20200930-64 Error: Package: php-pecl-oauth-1.2.3-8.el7.x86_64 (epel) Requires: php(zend-abi) = 20100525-64 Installed: php-common-8.0.20-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 Available: php-common-5.4.16-43.amzn2.0.2.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 Available: php-common-5.4.16-43.amzn2.0.3.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 Available: php-common-5.4.16-43.amzn2.0.4.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 Available: php-common-5.4.16-45.amzn2.0.5.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 Available: php-common-5.4.16-45.amzn2.0.6.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 Available: php-common-5.4.16-46.amzn2.0.2.x86_64 (amzn2-core) php(zend-abi) = 20100525-64 Available: php-common-8.0.0-2.amzn2.x86_64 (amzn2extra-php8.0) php(zend-abi) = 20200930-64 Available: php-common-8.0.2-1.amzn2.x86_64 (amzn2extra-php8.0) php(zend-abi) = 20200930-64 Available: php-common-8.0.6-1.amzn2.x86_64 (amzn2extra-php8.0) php(zend-abi) = 20200930-64 Available: php-common-8.0.8-1.amzn2.x86_64 (amzn2extra-php8.0) php(zend-abi) = 20200930-64 Available: php-common-8.0.13-1.amzn2.x86_64 (amzn2extra-php8.0) php(zend-abi) = 20200930-64 Available: php-common-8.0.16-1.amzn2.x86_64 (amzn2extra-php8.0) php(zend-abi) = 20200930-64 Available: php-common-8.0.18-1.amzn2.x86_64 (amzn2extra-php8.0) php(zend-abi) = 20200930-64 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
错误含义
php(api):PHP核心的API版本标识,不同大版本PHP(如PHP5.4与PHP8.0)的API完全不兼容,扩展必须匹配对应版本才能正常加载。php(zend-abi):Zend引擎的二进制接口版本,同样是跨大版本不兼容的标识。- 当前系统安装的是PHP8.0,对应的
php(api)为20200930-64、php(zend-abi)为20200930-64;而EPEL源中的php-pecl-oauth-1.2.3-8.el7是为PHP5.4编译的,要求的依赖版本为php(api)=20100412-64和php(zend-abi)=20100525-64,版本不匹配导致依赖校验失败。
解决办法
方法1:手动编译安装PHP8.0兼容的oauth扩展
Amazon Linux 2的官方amzn2extra-php8.0源未提供预编译的oauth扩展,可通过pecl手动编译:
- 安装PHP8.0开发依赖:
sudo yum install php8.0-devel gcc make - 通过pecl安装oauth扩展:
sudo pecl install oauth - 在PHP配置目录(一般为
/etc/php.d/)创建oauth.ini文件,添加以下内容启用扩展:extension=oauth.so - 重启PHP相关服务生效:
# 使用PHP-FPM时执行 sudo systemctl restart php-fpm # 使用Apache时执行 sudo systemctl restart httpd
方法2:降级到PHP5.4版本(不推荐)
PHP5.4已停止官方维护,存在安全风险,仅在特殊场景下使用:
- 禁用PHP8.0扩展源:
sudo yum-config-manager --disable amzn2extra-php8.0 - 安装PHP5.4及对应oauth包:
sudo yum install php-common php-pecl-oauth - 重启相关服务。
方法3:使用第三方兼容源
可添加支持Amazon Linux 2 PHP8.0的第三方源,安装对应版本的oauth包,需自行评估源的安全性与兼容性。
内容的提问来源于stack exchange,提问作者jillian242424
相关产品推荐
相关产品推荐

