我已经安装了 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
完成最后一步后,您就可以开始了!