PHP 5.3.1在Windows上无法加载php_oci8.dll

6
我试图在PHP上加载Oracle扩展,但遇到以下错误:警告:PHP启动:无法加载动态库'D:\ Program Files \ xampp \ php \ ext \ php_oci8.dll'-找不到指定的过程。已经完成了以下步骤:
  1. 将Oracle instant client的完整路径包含在Windows路径中
  2. 在php.ini中,extension_dir指向正确的位置
  3. 在php.ini中extension=php_oci8.dll是正确的
  4. 重新启动了Apache,但仍然没有成功。
请注意,文本中保留了HTML标签。

你尝试过绝对设置 extention_dir 吗?你尝试过清空 extention_dir 并绝对设置 extention=php.oci8.dll 吗?你确定 php_oci8.dll 是适用于你的机器(32位/64位)吗? - Eun
我相信扩展目录正在工作,因为我可以成功连接到MySQL和PostgreSQL数据库。我使用的php_oci8.dll是与xampp一起安装的。我使用的电脑是32位的,所以dll也是。 - thclpr
PHP 5.3.1?为什么要使用这么过时的版本?当前版本是5.3.17。这些版本之间有很多补丁,包括很多安全补丁。 - Spudley
1
因为我只是用它来管理个人的书籍/ DVD 数据库,所以不需要升级任何东西 :) - thclpr
6个回答

7
通过将文件 orannzsbb11.dll、oci.dll 和 oraociei11.dll 复制到 c:\windows\system32 解决问题。

2
我通过将"C:\Program Files (x86)\PHP\v5.3\ext"添加到Windows的PATH环境变量中来解决了这个问题。您只需要记得在升级PHP时更改路径即可。我认为这比复制dll文件更好,因为如果您在同一台机器上拥有多个不同版本的dll文件,可能会在以后出现问题。

我们讨论了这个问题,但我们决定将dll文件添加到system32文件夹中会更好。感谢您的建议 :) - thclpr

2

1
如果你在安装了即时客户端、SDK等之后,仍然看到这个错误信息:The specified procedure could not be found. in Unknown on line 0,请确保将Oracle即时客户端路径添加到系统的“PATH”变量中,而不是用户变量中,因为当Apache运行时,用户变量显然不会被使用。你可以通过查看phpinfo()输出中显示的PATH值来验证即时客户端路径是否设置正确。

1
对我来说,这是由于没有安装Visual Studio 2008 SP1(针对VC9)的Visual C++ Redistributable引起的。由于我正在运行Windows 7 64位系统,所以我需要获取x64软件包。希望这能帮助到遇到同样问题的人。安装后,PHP不再报告那些错误。

0

您的文章链接返回了一个404页面未找到的错误。 - SaschaM78

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