OCI8 PHP扩展在Windows服务器上的安装

5
我有一个特定的问题,需要让OCI8在我的服务器安装上工作。
首先设置:
- Win 2008 Server 32位 - ZendServer for PHP with Apache2.2 - PHP版本为5.3.14,没有php_oci8文件 - 没有安装Oracle 我需要能够连接到远程Oracle数据库,所以我发现应该使用OCI8扩展。为了使OCI8工作,我还需要在服务器上安装至少Oracle Instant Client,因为OCI8需要某些DLL。
我做了什么?
  • 从Oracle网站(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目录中
  • 在php.ini中添加extension=php_oci8.dll
  • 重新启动Apache

所有这些操作完成后,我检查了php_info以确认是否一切正常,但没有发现oci8的任何迹象。

我尝试使用较旧的Oracle instant client,并在php_oci8.dll、php_oci8_11g.dll或php_oci8_12c.dll之间切换,但都没有帮助。

我发现,由于php_info中的环境部分未显示与在Windows中设置的值相同的值。

从php错误日志中,我还得到了以下信息:

[30-May-2014 08:02:16 UTC] PHP Warning: PHP启动时发生错误: 无法加载动态库'C:\ Program Files \ Zend \ ZendServer \ lib \ phpext \ php_oci8_11g.dll' - 找不到指定的模块。 在未知行

目前,我不知道该怎么办,除非尝试重新安装PHP(由于与其相关的许多问题),不同的Oracle即时客户端或不同的php_oci8库。 我谷歌了几个小时,试图在Stack上寻找答案,但没有解决方案,只有一些提示,没有帮助。 是否有人遇到并解决了类似的问题?

1个回答

5

我遇到了相同的问题,以下步骤帮助了我。

  1. 下载instantclient并将其放置在“C:\ instantclient_11_2”目录下

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

  3. 检查你的php版本,例如PHP Version 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扩展文件夹,对于我来说是“C:\xampp\php\ext”

  5. 取消php.ini中的“extension=php_oci8_11g.dll”的注释,并重新启动apache

  6. 检查php_info(),oci8应该已启用。

    就是这样。


由于时间较长,当时我采用了不同的方法,特别是因为受到服务器设置的限制。因此我无法在我的环境中验证您的答案,但我同意这应该可以工作,因此标记为已接受。 - Yoshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接