无法通过 remi 存储库在 oracle linux 9 中安装 php-oci8

无法通过 remi 存储库在 oracle linux 9 中安装 php-oci8

我已经安装了 remi 存储库,但无法安装 php。因此,我使用以下命令通过流安装了 php,该命令似乎使用了 remi repo。

dnf 模块安装 php:8.1

现在,我尝试通过 remi 存储库在 oracle linux 9 中安装 php-oci8 但没有成功。看来 php-oci8 在 remi 仓库中可用:http://rpms.remirepo.net/enterprise/9/php81/x86_64/repoview/php-oci8.html

我已经尝试过这个:

dnf 配置管理器 --启用 remi-modular

百胜安装 php-oci8

我收到以下错误:

所有匹配项均通过参数的模块化过滤过滤掉:php-oci8

错误:无法找到匹配项:php-oci8

我不明白出了什么问题。另外,我尝试过 raven 和 EPEL repos,但收到了相同的错误消息。有没有办法安装 php-oci8dnf模块?或者有什么方法可以“说服”dnf 使用 remi repo 安装 php-oci8 ?

答案1

您没有使用正确的流,php:8.1是官方的,具有最少的扩展集,在您的情况下,您需要使用php:remi-8.1替代流。

# dnf install php-oci8
Dependencies resolved.
==========================================================================================================================
 Package                   Architecture            Version                            Repository                     Size
==========================================================================================================================
Installing:
 php-oci8                  x86_64                  8.1.13-1.el9.remi                  remi-modular                  134 k
Installing dependencies:
 php-pdo                   x86_64                  8.1.13-1.el9.remi                  remi-modular                  113 k

Transaction Summary
==========================================================================================================================
Install  2 Packages

Total download size: 248 k
Installed size: 941 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): php-oci8-8.1.13-1.el9.remi.x86_64.rpm                                              2.6 MB/s | 134 kB     00:00    
(2/2): php-pdo-8.1.13-1.el9.remi.x86_64.rpm                                               1.2 MB/s | 113 kB     00:00    
--------------------------------------------------------------------------------------------------------------------------
Total                                                                                     2.5 MB/s | 248 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                  1/1 
  Installing       : php-pdo-8.1.13-1.el9.remi.x86_64                                                                 1/2 
  Installing       : php-oci8-8.1.13-1.el9.remi.x86_64                                                                2/2 
  Running scriptlet: php-oci8-8.1.13-1.el9.remi.x86_64                                                                2/2 
  Verifying        : php-oci8-8.1.13-1.el9.remi.x86_64                                                                1/2 
  Verifying        : php-pdo-8.1.13-1.el9.remi.x86_64                                                                 2/2 
Installed products updated.

Installed:
  php-oci8-8.1.13-1.el9.remi.x86_64                            php-pdo-8.1.13-1.el9.remi.x86_64                           

Complete!

# php --ri oci8

oci8

OCI8 Support => enabled
OCI8 DTrace Support => enabled
OCI8 Version => 3.1.0
Oracle Run-time Client Library Version => 21.8.0.0.0
Oracle Compile-time Instant Client Version => 21.7

为了正确的存储库配置和使用,请遵循向导说明

对于 Oracle,我还建议您阅读安装适用于 PHP 的 Oracle 扩展

答案2

这是来自不同来源的混合包问题:使用dnf module install php:8.1应该使用 8.1 流从 Oracle 存储库安装 php(我不知道它是如何从 Remi 安装的)。

我将向您发送我最近如何在 Oracle Linux 8、php 8.0 上安装 php-oci8。理论上,没有什么可以阻止在 OL9 + php8.1 上执行相同的步骤。

第一步,删除 Remi 存储库。我继续使用 Oracle repo + PHP pecl(pecl 添加了 PHP 扩展)。
删除任何雷米文件/etc/yum.repos.d/或重命名扩展名,或者enable=0,无论您喜欢删除/禁用存储库的任何方法。然后运行:

dnf check-upgrade

需要执行此步骤来删除其他来源的任何 php 包。跟踪您已安装的 php 软件包;您将再次安装它们,但这次是从 Oracle 存储库 8.1 流安装它们。加上任何conf文件。
dnf list *php*
记下已安装的php以及php相关的包。
dnf remove {any php - php related packages}

dnf module reset php

启用 php 8.1 流,无论 php 包将在 8.1 版本上
dnf module enable php:8.1

您需要安装 php-pear 进行pecl安装,还需要 php-devel,以及删除之前安装的所有其他 php 软件包
dnf install php php-pear php-devel {plus the rest php packages}

系统会要求您提供 ORACLE_HOME 目录。如果使用 Oracle Instant Client 进行编译,请使用“instantclient,/path/to/instant/client/lib”。
sudo pecl install oci8

现在 OCI 已安装,请检查
pecl list

将 OCI 扩展添加到 php.ini
echo extension=oci8.so >> /etc/php.ini

systemctl restart php-fpm.service

OCI 8 应出现在此处
php -m |grep -i oci

完成最后一步后,您就可以开始了!

相关内容