我似乎对 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 变量(已经在那里)
我使用的软件版本:
有什么想法吗?
最佳答案
似乎我想通了,可以回答我自己的问题。看起来 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/