【发布时间】:2015-08-27 02:49:50
【问题描述】:
我似乎对 PHP 有一个奇怪的问题。
我已将一堆软件从一台服务器迁移到另一台服务器。在服务器上,一些脚本与 Oracle 建立连接,因此为了能够建立连接,安装了 oracle 客户端并准备了 tnsnames 文件。来自 sql*plus 的连接有效。
一些脚本使用 PDO,因此我在 php.ini 中启用了 extension=php_pdo_oci.dll。这些脚本就像一个魅力。
其他一些脚本使用像 oci_connect 这样的函数,这些需要像 php_oci8.dll 这样的扩展。使用 xammp(我用作 apache/php/mysql 包)提供 php_oci8_12c.dll,所以我认为扩展就足够了。
启动服务器时,我在 php 错误日志中看到这些错误:
Unable to load dynamic library 'C:\xampp\php\ext\php_oci8_12c.dll' - The specified procedure could not be found.
该文件位于 C:\xampp\php\ext\,所以这应该不是问题。拾取同一目录中的其他扩展名没有任何问题。我也尝试加载 php_oci8.dll,这是我从旧服务器上获取的,但遇到了完全相同的问题。
我发现了一些我尝试过但没有成功的类似问题的答案: - 将 dll 复制到 c:\windows\system - 将 php ext 目录添加到系统 PATH 变量中 - 将 oracle 客户端添加到系统 PATH 变量中(已经在其中)
我正在使用的软件版本:
- 操作系统:Windows 2012 R2 x64
- PHP:5.6.3
- Oracle 数据库:11.2.0.4.0
有什么想法吗?
【问题讨论】: