Windows 服务器上的 OCI8 php 扩展安装

Yos*_*shi 5 php oci8 windows-server-2008-r2 php-5.3

我在使 OCI8 在我的服务器安装上工作时遇到特定问题。

第一次设置:

  • 赢 2008 服务器 32 位
  • ZendServer for PHP with Apache2.2
  • PHP 5.3.14 版本,没有 php_oci8 文件
  • 没有安装oracle的东西

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

我做了什么?

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

毕竟,我检查了 php_info 以查看是否一切正常,但是没有 oci8 的迹象。

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

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

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

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

Anm*_*rya 5

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

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

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

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

  4. 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。

    就这样。