【问题标题】:PHP 5.2 (win.server) can't connect to Oracle 12c dbPHP 5.2 (win.server) 无法连接到 Oracle 12c db
【发布时间】:2018-07-13 02:09:00
【问题描述】:

我有一个难题。 在 win.server 我有 PHP 5.2 版本。我必须连接 Oracle 12c db。我做的程序是:

  1. 下载oracle客户端12.2
  2. 启用 php_oci8.dll
  3. 将路径插入到 C:\Windows\SysWOW64\instantclient_12_2
  4. 重启服务器

我也尝试插入 php_oci8_12c.dll 扩展并将 oci8_12c.dll 文件放在 php/ext 目录中。 当我真正运行 .bat 文件时,我看到错误:

  • "Missing MSVCR120.ddl" - 我通过将此文件放入 /php/ext 目录来解决此问题。
  • “程序入口点gc_remove_zval_from_buffer无法在动态链接库php5ts.dll中定位”

在我的本地电脑上,我有 php 5.6,它们与 12c oracle 一起工作。 在互联网上看到 5.2 版本可以与 12c 一起使用。

潜在的问题是什么?我可以尝试什么?

【问题讨论】:

    标签: oracle12c oci8 php-5.2


    【解决方案1】:

    OCI 12c 需要 PHP 5.5,请参阅 http://www.oracle.com/technetwork/articles/dsl/technote-php-instant-12c-2088811.html

    您可以尝试安装 Visual C++ Redistributable Package

    因为MSVCR120.dll错误不能通过放到ext文件夹中修复。

    当您使用 Apache 和/或 Console 客户端时,请确保您已在两个 php.ini 文件中启用,因为它们是不同的配置。

    你也可以试试https://pecl.php.net/package/oci8的PECL OCI包

    确保选择正确的版本,最新版本仅适用于 PHP 7。

    【讨论】:

    • 我开始使用 oracle.com/technetwork/articles/dsl/... 中的说明在具有 PHP 5.6.2 和 windows 服务器的其他服务器上配置 OCI 12c。是否需要使用链接中的这些代码配置 Apache?我还在系统属性/高级/环境变量/PATH 中为 Instantclient_12_2 添加目录之前,并在 php_info 中看到 Apache 启用并使用它们。是否需要在 httpd.conf 中添加路径代码?如果我为路径添加代码,我不确定 apache 是否可以工作,因为 php 和 apache 的启动配置(目录)可能不同。还需要 mod_fcgid-2.3.9 吗?
    • 您可以将 PHP 作为模块运行,也可以通过快速 cgi 单独运行。只有 PHP 需要扩展,Apache 不需要。
    • 但我的配置就像在第一篇文章中写的一样。在 php.ini 中启用扩展 php_oci8_12c,将 instaclient_12_2 放在 C:\Windows\SysWOW64 中,在环境变量中添加该目录的 PATH,我在日志中只有错误:“致命错误:调用未定义的函数 oci_connect()”。我可能会错过什么或下一步?你写“当你使用 Apache 和/或控制台客户端时,请确保你在两个 php.ini 中都启用了”......这是否意味着我需要配置 apache?
    • @MarkoAnastasijevic 您的 PHP 配置路径是什么?当您看到 phpinfo(); 时,其中的配置路径是什么,它是否使用 OCI 加载任何内容?
    • 你安装了 Visual C++ 包吗?
    【解决方案2】:

    我终于成功地安装了它,奇迹发生了,因为我真的很喜欢这段时间......

    我做的步骤是:

    • 下载instaclient12.2(32位)
    • 安装visual c++ redistributable 2013

    • 将 instaclient_12_2 放入 C:\Windows\SysWOW64\

    • 插入路径 C:\Windows\SysWOW64\instantclient_12_2
    • 下载oci8_2.0.12 X64 TS并将php_oci8_12c.dll放入php/ext中
    • 将oci.dll(来自instantclient_12_2 (32bit))放入C:\Apache24\bin、C:\php\ext 和C:\php
    • 启用扩展 php_oci8_12c.dll ini php.ini

    在服务器上是 Windows server 2008 R1 和 PHP 5.6.2 TS

    【讨论】:

      猜你喜欢
      • 2018-07-18
      • 2020-05-25
      • 2018-07-11
      • 1970-01-01
      • 2016-06-23
      • 2020-10-09
      • 1970-01-01
      • 2014-06-08
      • 2016-10-03
      相关资源
      最近更新 更多