我正在尝试在PHP上加载oracle扩展但我有错误:
警告:PHP启动:无法加载动态库'D:\ Program Files \ xampp \ php \ ext \ php_oci8.dll' - 找不到指定的过程 . 在第0行的未知中
到目前为止我做了:
-
在Windows路径中包含oracle即时客户端的完整路径
在php.ini上 -
,
extension_dir
指向正确的位置 -
在php.ini
extension=php_oci8.dll
上没问题 -
重新启动了apache,没有任何效果 .
6 回答
通过将文件orannzsbb11.dll,oci.dll和oraociei11.dll复制到c:\ windows \ system32解决了问题
我通过在我的Windows PATH环境变量中添加“C:\ Program Files(x86)\ PHP \ v5.3 \ ext”解决了这个问题 . 如果升级PHP,您只需要记住更改路径 . 我认为这比复制dll更好,如果你最终在同一台机器上使用不同版本的多个dll,这可能会导致问题 .
您需要从此超链接http://www.oracle.com/technetwork/topics/winsoft-085727.html下载Oracle Instant Client . 在用户环境vriables和系统变量上添加即时客户端的路径 .
对我来说,这是因为没有安装Visual Studio 2008 SP1(适用于VC9)的Visual C Redistributable . 我必须得到x64包,因为我正在运行Windows 7 64位 . 希望这可以帮助有同样问题的人 . 安装后,PHP不再报告这些错误 .
我发现这个问题背后的主要原因是oracle的oci8驱动程序版本 . 最后我能够连接到oracle和我在这里描述的步骤http://angularcode.com/connecting-php-to-oracle-database-10g/
可能对某些人来说很明显,但即使在安装了即时客户端,SDK等之后仍然没有看到
The specified procedure could not be found. in Unknown on line 0
错误 - 请确保将Oracle即时客户端路径放在 system "PATH"变量中,而不是 user 变量中, Apache运行时显然不会使用用户 . 您可以通过查看phpinfo()输出中显示的PATH值来验证是否正确设置了即时客户端路径 .