PHP Conference Japan 2024

需求

OCI8 3.0 包含在 PHP 8 中。它也可以从 » PECL 获取。对于 PHP 7,请使用来自 » PECL 的 OCI8 2.2。OCI8 需要 Oracle 10g 或更高版本的 Oracle 客户端库。

如果 Oracle 数据库与 PHP 在同一台机器上,则数据库软件已包含必要的库和头文件。当 PHP 在另一台机器上时,请使用免费的 » Oracle Instant Client 库。

要使用 Oracle Instant Client,请安装 BasicBasic Light Oracle Instant Client ZIP 文件、RPM 包或 DMG 包。从源代码构建 OCI8 时,还要安装 Instant Client SDK

必须使用与构建 OCI8 相同或更高版本的 Oracle 库运行 PHP。

注意:

Oracle 的标准客户端-服务器网络互操作性允许在不同版本的 Oracle 客户端和 Oracle 数据库之间建立连接。有关经过认证的配置,请参阅 Oracle 支持的 Doc ID 207303.1。总而言之,Oracle 客户端 19、18 和 12.2 可以连接到 Oracle 数据库 11.2 或更高版本。Oracle 客户端 12.1 可以连接到 Oracle 数据库 10.2 或更高版本。Oracle 客户端 11.2 可以连接到 Oracle 数据库 9.2 或更高版本。

注意:

只有在使用最新版本的 Oracle 客户端库和数据库时,才能获得完整的 OCI8 功能支持。

添加注释

用户贡献注释 5 条注释

Wilber
2 年前
OCI8 扩展允许您访问 Oracle 数据库。

使用“pecl install oci8”安装 PHP 8.1。

使用“pecl install oci8-3.0.1”安装 PHP 8.0。

使用“pecl install oci8-2.2.0”安装 PHP 7。

使用“pecl install oci8-2.0.12”安装 PHP 5.2 - PHP 5.6。

使用“pecl install oci8-1.4.10”安装 PHP 4.3.9 - PHP 5.1。

[username@hostname ~]# php -v
^ 查看 PHP 版本
sgfan at gmx dot net
7 年前
我可以确认 Rainer 的观察结果,这不仅限于 PHP。无法将 libopenldap 与 C 和 Oracle 驱动程序链接,而不会导致应用程序在运行时崩溃。在 HP-UX 上也是如此。两者根本无法很好地协同工作。
Rainer Perske
7 年前
Oracle Instant Client 提供了自己的 LDAP 库,该库可能与操作系统提供的 LDAP 库不兼容。

如果您将 OCI8 扩展加载到包含 LDAP 支持的 PHP 中,或者将包含 OCI8 的 PHP 模块加载到包含 LDAP 支持的 Apache 服务器中,则可能会发生分段错误和其他错误。

但这在很大程度上取决于所涉及的操作系统、系统 LDAP 库、PHP、OCI8 和其他软件组件的确切版本。
charles dot fisher at arconic dot com
4 年前
Oracle 的开发包包含一个 ldap.h 文件,该文件会导致 PHP 的编译尝试失败。

对于 oracle-instantclient12.2-devel 64 位 RPM,此文件位于以下路径

/usr/include/oracle/12.2/client64/ldap.h

将此文件重命名为 ldap.h-oracle。

这样做之后,假设没有其他构建问题,PHP 将编译(即使在构建中配置了 ldap 和 oci)。
To Top