草庐IT

php: 加载 oracle 驱动程序给出错误 "Unable to load dynamic library - The specified procedure could not be found."

coder 2024-04-12 原文

我似乎对 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
  • 甲骨文数据库:11.2.0.4.0

有什么想法吗?

最佳答案

似乎我想通了,可以回答我自己的问题。看起来 XAMPP 在他们的发行版中提供了一个不合适的 ddl。 正确的和最新的 oci8 dll 可以在这里以所有可能的方式下载:http://windows.php.net/downloads/pecl/releases/oci8/2.0.8/ .一旦我找到合适的,它就像一个魅力。

关于php: 加载 oracle 驱动程序给出错误 "Unable to load dynamic library - The specified procedure could not be found.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30780271/

有关php: 加载 oracle 驱动程序给出错误 "Unable to load dynamic library - The specified procedure could not be found."的更多相关文章

随机推荐