php:加载oracle驱动程序给出错误“无法加载动态库 - 找不到指定的过程。”

时间:2015-06-11 12:03:32

标签: php oracle dll pdo

我似乎对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 errorlog中看到了这些错误:

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

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:0)

XAMPP 附带 PHP 附带 ThreadSafe ,因此您必须从此目录下载文件:

http://windows.php.net/downloads/pecl/releases/oci8/2.0.8/ ...

在将3个DLL粘贴到 C:\ xampp \ php \ ext *之前,请将“ .old *”附加到每个文件。确保您已根据文件 php.ini 中的Oracle数据库版本启用了良好的DLL。最后,重启Apache。