如何在xampp 5.6.3中启用oci?

时间:2015-03-12 12:21:42

标签: php dll xampp oci8

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

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

Figure-1

单击“确定”按钮,将显示另一个对话框,如下所示:

Figure-2

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

Figure-3

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

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

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

需要帮助..

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

Figure-4

4 个答案:

答案 0 :(得分:2)

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

您正在尝试使用php_oci8_12g.dll,我建议您阅读此链接http://www.oracle.com/technetwork/articles/dsl/technote-php-instant-12c-2088811.html,并指定运行oci12g。

答案 1 :(得分:1)

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

instantclient-basic-nt-12.1.0.2.0.zip

答案 2 :(得分:1)

卡住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
  • 将3个文件从 C:\ oracle \ instaclient12.2.0.1 复制到xampp apache \ bin中。oci.dll,oraociei12.dll和oraons.dll。通过此步骤无法加载动态库的问题已解决。 Unable to load dynamic library issue solution
  • 现在在xampp上重新启动Apache并在浏览器上检查info.php。 OCI8模块将显示在其中启用。

享受!!!。

答案 3 :(得分:0)

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

  

致命错误:调用未定义函数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,则可能会显示的dll。在etc文件夹中找不到或其中哪个与Win 32不兼容。如果遇到此问题,打开phpinfo()页面时将看不到OCI8页面:

enter image description here

如果是这种情况,则由于win 32兼容性问题或找不到您肯定存在的dll,则应取消安装XAMPP并使用x32版本重新安装它。 phpinfo页面将显示x86体系结构。切记在路径变量中删除任何找不到您使用的php的源,这里的要点是使用XAMPP中默认给定的源。如果出于任何原因需要使用其他php安装,请记住使用x86体系结构。 如果您需要更新的OCI8 dll,可以在https://pecl.php.net/package/oci8上下载它,但要记得检查线程安全兼容性,也可以在phpinfo页面上找到它。就我而言,使用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是否正确显示。