如何在 xampp 5.6.3 中启用 oci?

How to enable oci in xampp 5.6.3?

我在通过 XAMPP 启动 Apache 服务器时遇到了一些问题。我已经安装了 XAMPP 版本 5.6.3.

当我从xampp控制面板启动Apache服务器时,显示如下错误信息:

点击'OK'按钮,弹出另一个对话框,如下所示:

问题是我想使用 OCI 而不是 mysql。所以我在 php.ini 文件中注释掉 mysql 扩展并取消注释 OCI 扩展。

php_oci8_12c.dll 文件是 xampp 中 php 的扩展 (ext) 文件夹中唯一可用的文件。因此,我在 php.ini 中包含了该行,如上图所示。

从那以后我就收到了这个错误。

我也安装了即时客户端 12.1,但没有成功。我还尝试从 instantclient_12_1 复制 OCI.dll 并将其粘贴到 c:/xampp/php 和 c:/xampp/apache/bin。错误仍然存​​在。

需要帮助..

更新: 我删除了环境变量 PATH 中的其他 oracle 路径,只保留了 instantclient 路径。现在我收到这个错误..

嗯,我已经安装了 XAMPP 1.8.2、PHP 5.4 和 Apache 2.0,我使用 php_oci8_11g.dll 并且工作正常。

您正在尝试使用 php_oci8_12g.dll,我建议您阅读此 link http://www.oracle.com/technetwork/articles/dsl/technote-php-instant-12c-2088811.html 以及 运行 oci12g 的详细说明。

我解决了这个问题。问题是我试图在 32 位 PHP 中使用 64 位 DLL(php_oci8_12g.dll)。我下载了一个 32 位的 instantClient,现在可以使用了! :-)

instantclient-basic-nt-12.1.0.2.0.zip

我连续几天遇到与 OCI8 和 XAMPP 相关的问题,问题显示为:

Fatal error: Call to undefined function oci_connect()

我能够使用 XAMPP 默认附带的 php 来更正它。我也在使用 windows 10 64 位,但使用了 xampp-win32-7.3.2-0-VC15 (php 7.3.2)。总而言之,我能够通过使用 32 位版本(o.s 除外)进行所有操作来获得正确的配置。完整的故事以及我是如何做到的:

如果你通过 cmd 进入你的 xampp/php 目录,在我的例子中是 "C:\xampp\php",然后通过简单的命令 "php" 启动 php 它可能会显示在 etc 文件夹中未找到哪些 dll ,或者其中哪些不兼容 Win 32。如果遇到此问题,您将无法在打开 phpinfo() 页面时看到 OCI8 页面:

如果是这种情况,win 32 兼容性问题或找不到您确定存在的 dll,您应该卸载 XAMPP 并使用 x32 版本重新安装它。 php信息页面将显示 x86 架构。请记住在路径变量中删除任何未找到您正在使用的 php 的来源,这里的重点是使用 XAMPP 中默认给出的来源。如果您出于任何原因需要使用另一个 php 安装,请记住使用 x86 架构。 如果您需要更新的 OCI8 dll,您可以在 https://pecl.php.net/package/oci8 上下载它,但请记住检查线程安全兼容性,您也可以在 php 信息页面上找到它。在我的例子中,使用 XAMPP.

提供的就足够了

之后,您必须启用扩展程序:

 extension=oci8_12c

在php.ini配置文件中。我只启用这个就足够了,尽管有些人建议也启用 extension=pdo_oci。我的建议是仅当您无法使用此处显示的路径进行安装时才尝试此操作。检查您是否设置了有关扩展的正确路径也很好,在我的例子中:

extension_dir="C:\xampp\php\ext"

在此之后,您必须下载 Oracle Instant Client。由于您使用的是 x86 架构(您必须使用这个),您需要找到一个 32 位版本的 OIC,但检查哪个与您取消注释的扩展兼容也很重要。在我的例子中,oci8_12c,它是 instantclient-basic-nt-12.2。 最后一步是将它解压到一个文件夹中,比如 "C:\instantclient_12_2" 并将其添加到系统的路径变量中。 重新加载 apache 并检查 OCI8 是否正确显示。

我在卡住 2-3 天后解决了这个问题。

在执行步骤之前需要记住一些事情。 1-我正在使用 win 8.1 64 位。 2- 使用 Xampp 5.6.31 32 位。 3- 使用 instaclient 12.2.0.1 64 位(因为我的 win 8.1 是 64 位).

现在的步骤如下-

第 1 步 - 下载 xampp 5.6.31 32 位并安装。

第 2 步 - 下载并安装 oracle 11g R2

步骤 3 - 下载并安装 OTN (oracle instaclient 12.2.0.1)

  • 在我的情况下提取任何驱动器中的所有文件我在 C:\oracle\instaclient12.2.0.1
  • 中提取
  • 将(C:\oracle\instaclient12.2.0.1 ) 添加到系统的路径变量中。并在名称为 TNS_ADMIN 的系统变量下添加新变量,并将相同的路径 (C:\oracle\instaclient12.2.0.1 ) 放入其值中。
  • 是时候设置PHP.INI这里取消下面的注释(见下图) PHP.ini setup
  • C:\oracle\instaclient12.2.0.1 oci.dll,oraociei12.dll 和 oraons.dll 复制 3 个文件到 xampp apache\bin 。通过这一步Unable to load dynamic library问题已经解决。 Unable to load dynamic library issue solution
  • 现在在 xampp 上重新启动 Apache 并在浏览器上检查 info.php。 OCI8 模块将出现在那里 enable .

尽情享受吧!!!