我已经安装了 remi 存储库,但我无法安装 php。因此,我使用以下似乎使用 remi repo 的命令通过流安装了 php。
dnf 模块安装 php:8.1
现在,我正在尝试通过 remi 存储库在 oracle linux 9 中安装 php-oci8 但没有成功。似乎 php-oci8 在 remi repo 中可用:http ://rpms.remirepo.net/enterprise/9/php81/x86_64/repoview/php-oci8.html
我试过这个:
dnf config-manager --enable remi-modular
yum 安装 php-oci8
我收到以下错误:
所有匹配项都通过参数的模块化过滤过滤掉:php-oci8
错误:找不到匹配项:php-oci8
我不明白哪里出了问题。此外,我已经尝试过 raven 和 EPEL repos,但我收到了相同的错误消息。有没有办法用dnf 模块安装 php-oci8 ?或者有什么办法可以“说服”dnf 使用 remi repo 安装 php-oci8?
您没有使用正确的流,php:8.1是官方流,具有最少的扩展集,在您的情况下,您需要使用php:remi-8.1替代流。
为了正确的存储库配置和使用,请按照向导说明进行操作
对于 Oracle,我还建议您阅读Installation of Oracle extensions for PHP
它是来自不同来源的混合包问题:使用
dnf module install php:8.1
should install php from Oracle repo, using 8.1 stream(我不知道它是如何从 Remi 安装的)。我将向您发送我最近如何在 Oracle Linux 8、php 8.0 上安装 php-oci8。理论上,没有任何东西可以阻止 OL9 + php8.1 上的相同步骤。
第一步,删除 Remi 仓库。我继续使用 Oracle repo + PHP pecl(pecl 添加了 PHP 扩展)。
从中删除任何Remi文件
/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
在最后一步之后你就可以开始了!