【问题标题】:PHP Warning at startup while trying to load php_oci8.dll尝试加载 php_oci8.dll 时启动时出现 PHP 警告
【发布时间】:2014-01-16 12:06:13
【问题描述】:

我正在使用 XAMPP 并尝试为 sql 配置 Oracle 连接。

我取消了extension=php_oci8.dll 行的注释,起初它以错误告终(缺少oci.dll),但后来我从Oracle 网页下载了instantclient。我尝试了 10.2、11.2 和 12.1 版本,但都没有成功。显然,我已将这些库的路径添加到我的 PATH env 变量中。

我在 Apache 启动时收到的警告是:PHP Warning: PHP Startup: in Unknown on line 0

我尝试连接时的错误是:PHP Fatal error: Call to undefined function oci_connect() in ...

我已尝试使用 php_oci8.dllphp_oci8_11g.dll。这些文件在我的php/ext 目录中(它们包含在xampp 中),我的instantclient 被添加到PATH,如果我禁用这些模块,警告不会出现。我已尝试重新启动服务和计算机。

您能帮我找到如何正确配置它的解决方案吗?我正在使用具有管理权限的 Windows 8.1。

顺便说一句。我的 phpinfo() 说 OCI8 已激活(但像 oci_connect 这样的功能仍然不起作用)。

编辑:当我尝试手动运行 PHP 时,我终于得到了错误提示:Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application. in Unknown on line 0你能帮我找出在哪里可以下载正确的版本吗?

【问题讨论】:

  • 在重新安装其他版本之前,您是否清理了所有 Oracle 安装?
  • 我根本没有在我的 PC 上安装 Oracle。我正在使用 VPN 连接连接到服务器。我下载了 sqldeveloper 并且它工作(虽然它没有安装任何东西)

标签: php oracle oracle-call-interface


【解决方案1】:

这是因为您的 Oracle 是 64 位的。删除它并安装一个 32 位版本的 Oracle 客户端,它会工作。

【讨论】:

    【解决方案2】:

    还有另一种解决方法:安装完整的 Oracle 客户端,而不是基本的 zip,您可以在 oracle 网站上获得它(大约 1Gb):

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-windows-3633015.html

    我使用的是 Windows 10、Apache 2.4、PHP 7.1(所有 x64),并且可以正常工作。还尝试了 PHP 5.6,它也可以工作。仍然使用基本客户端 zip 中的 php_oci8_11g.dll 来匹配您的 php 和系统版本。

    您可以搜索该站点以查找较旧的客户端版本(11g、32 位等),但我正在使用 de 12c 客户端并访问 Oracle 11g 企业服务器。

    我在周围发现了很多同样的错误,但没有一个给我这个解决方案。希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      64 位版本的 Instantclient 存在问题。如果您遇到同样的问题,请安装 32 位版本的 Instantclient。

      说实话,最简单的方法就是按照正确的说明进行操作:http://www.oracle.com/technetwork/articles/dsl/technote-php-instant-084410.html

      我尝试了很多其他建议,但它们都对我很不利(不仅仅是因为我使用了不同的位版本——而且我按照愚蠢的建议将文件复制到各处,而且很难纠正)

      【讨论】:

        【解决方案4】:

        您的扩展程序似乎没有正确安装。尝试使用 pecl 更新或重新安装

        pecl install extname
        

        您还应该检查 php.ini 中的 extension_dir 指令并检查 PHP 文件夹是否已添加到路径中

        【讨论】:

        • 我尝试升级和安装,但收到消息:pecl upgrade oci8 downloading oci8-2.0.6.tgz ... Starting to download oci8-2.0.6.tgz (189,668 bytes) .........................................done: 189,668 bytes 11 source files, building WARNING: php_bin E:\xampp\php\php.exe appears to have a suffix \php.exe, but con fig variable php_suffix does not match ERROR: The DSP oci8.dsp does not exist.
        • 我的extension_dir 设置正确,我的 php/ext 目录被添加到PATH。我也将 PHP 目录添加到 PATH 中。
        猜你喜欢
        • 2015-12-05
        • 1970-01-01
        • 2017-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-08
        • 2012-09-30
        • 2020-05-24
        相关资源
        最近更新 更多