【问题标题】:OCI8 php extension installation on windows server在 Windows 服务器上安装 OCI8 php 扩展
【发布时间】:2014-07-20 00:30:16
【问题描述】:

让 OCI8 在我的服务器安装上运行时遇到了具体问题。

第一次设置:

  • Win 2008 Server 32bit
  • ZendServer for PHP with Apache2.2
  • 没有 php_oci8 文件的 PHP 版本 5.3.14
  • 没有安装 oracle 的东西

我需要能够连接到远程 oracle 数据库,所以我发现应该使用 OCI8 扩展。为了使 OCI8 工作,我还应该至少需要服务器上的 Oracle Instant Client,因为某些 DLL OCI8 需要。

我做了什么?

  • 从他们的网站 (oracle download site) 下载了 Oracle Instant Client,版本 11.2.0.4.0
  • 解压到文件夹,我选择Program Files/oci_11_2
  • 将地址添加到windows变量路径
  • 重新启动 Win
  • 从 PECL (PECL oci8 dl site) 下载了 php_oci8 库
  • 将它们放到php.ini中设置的ext目录中
  • 将 extension=php_oci8.dll 添加到 php.ini 中
  • 重启 apache

在这一切之后,我检查了 php_info 以查看,如果一切正常,但是没有 oci8 的迹象。

我尝试了旧版 Oracle 即时客户端,在 php_oci8.dll、php_oci8_11g.dll 或 php_oci8_12c.dll 之间切换,但没有任何帮助。

我发现,由于环境部分中的 php_info 显示的值与在 windows 中设置的值不同。 从 php 错误日志中,我还得到了以下信息:

[2014 年 5 月 30 日 08:02:16 UTC] PHP 警告:PHP 启动:无法加载动态库 'C:\Program Files\Zend\ZendServer\lib\phpext\php_oci8_11g.dll' - 指定的模块找不到。 在第 0 行的未知中

目前,我不知道该怎么做,除非尝试重新安装 php(我不想这样做,因为与此相关的许多问题)、不同的 Oracle 即时客户端或不同的 php_oci8 库。我用谷歌搜索了几个小时,尝试查看 Stack,但没有解决方案,只是一些提示,没有帮助。有人遇到并解决过类似的事情吗?

【问题讨论】:

    标签: php windows-server-2008-r2 php-5.3 oci8


    【解决方案1】:

    我有同样的问题,以下步骤帮助了我。

    1. 下载instantclient并放置“C:\instantclient_11_2”

    2. 为 C:\instantclient_11_2 设置环境变量

    3. 检查您的 php 版本,即 PHP 版本 5.6.15

    4. Form http://pecl.php.net/package/oci8 下载确切版本,对我来说是 php_oci8-2.0.8-5.6-nts-vc11-x86.zip,解压并复制 php_oci8_11g.dll 到 php ext 文件夹,对我来说是“C:\xampp\php\ext”

    5. 在 php.ini 中取消注释 "extension=php_oci8_11g.dll" 并重新启动 apache

    6. 检查php_info(),oci8应该是开启的。

      就是这样。

    【讨论】:

    • 由于时间长了,当时我用了不同的方法,特别是受到服务器设置的限制。因此,我无法在我的环境中验证您的答案,但我同意这应该有效,因此标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多