用于 php 连接的 oracle db 驱动程序 - ubuntu 20.04

用于 php 连接的 oracle db 驱动程序 - ubuntu 20.04

所以我几天前问了这个问题,但是由于我在 ubuntu 16.04 上运行,所以主题被关闭了。现在我已经更新到 Ubuntu 20.04.3 LTS。

我在 apache 上有一个 php 页面,还有我的 oracble db 连接:

$conn=odbc_connect("hostname","user","password");

给了我这个错误:

AH01071:出现错误“PHP 消息:PHP 警告:odbc_connect():SQL 错误:[unixODBC][驱动程序管理器]未找到数据源名称,且未指定默认驱动程序,SQLConnect 中的 SQL 状态为 IM002

我知道我需要安装驱动程序才能使其工作,但我不确定要安装哪一个?
由于 Oracle 数据库位于不同位置,因此必须在我的计算机上安装 Java (jdk)?

答案1

您的编程语言显然是 PHP,因此它与 Java、JDK、JDBC 或任何其他语言都无关。

我将总结两个来源,因为在我看来它们足够好,所以没有必要在这里复制所有内容。

对于 PHP,最简单的方法是使用 Oracle Instant Client 和 PHP 数据库对象 (PDO)。

摘要Ubuntu 维基

安装以下软件包,这些软件包在 Oracle 网站上以 RPM 软件包形式提供:

oracle-instantclient-basiclite
oracle-instantclient-devel
oracle-instantclient-sqlplus

接下来,安装 PHP OCI8:参见这里,从第 7 步开始。总结一下:要发出的核心命令是通过 PHP PECL 进行安装:

pecl install oci8   # PHP 8
pecl install oci8-2.2.0    # PHP 7.x

最后但同样重要的一点是,确保php.ini(取决于您使用的是 PHP-CLI 还是 PHP-FPM,它可能是/etc/php/VERSION/php-cli/etc/php/VERSION/php-fpm,其中VERSION可能是类似于7.48.0)加载 OCI 驱动程序:

extension=oci8
extension=pdo_oci

这应该就是全部了。如果还有其他问题,请参考我上面链接的 Ubuntu Wiki。对我来说,这些步骤已经足够了。

$dbconn = new PDO('oci:dbname=MY_CONNENCTION', 'username', 'pa55w0rd');

MY_CONNECTION可以是文件中提供的名称,也可以是文件中等号tnsnames.org( ) 右侧提供的整个长连接字符串,通常以或开头。=tnsnames.ora(DESCRIPTION=(DESCRIPTION_LIST=

相关内容