2011-12-26 86 views
7

我有下一行注释掉(在我的php.ini):致命错误:调用未定义的函数oci_connect()

extension=php_oracle.dll 
extension=php_oci8.dll 

我下载了该文件instantclient-basiclite-nt-11.2.0.2.0.zip并解压缩,并把该驱动器d .. 。

我使用Windows XP

我设置环境变量是这样的:

LD_LIBRARY_PATH  C:\instantclient_11_2:$LD_LIBRARY_PATH 
ORACLE_HOME  C:\instantclient_11_2 

但是,当我执行oci_connect()功能,我看到这个错误:

Fatal error: Call to undefined function oci_connect() in ...

,我发现在erroeLog文件这个警告:

[29-Dec-2011 00:36:39] PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_oci8.dll' - The specified module could not be found. in Unknown on line 0

[29-Dec-2011 00:36:39] PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_oracle.dll' - The specified module could not be found.

+0

什么消息做CLI版本或Apache输出?还有什么日志文件或系统日志thingy说? – mario 2011-12-26 13:06:24

+0

这应该有助于上述错误! [链接](http://stackoverflow.com/a/39770392/3973543) – Batman 2016-09-29 13:56:14

回答

2

你把php_oci8.dll文件在您php/ext目录后,重新启动Apache?

+0

我使用的IIS,但我也重新启动了! – afsane 2011-12-26 12:55:00

+0

你是否也将DLL放在正确的文件夹中? – 2011-12-26 12:58:08

+0

当然是! – afsane 2011-12-26 13:00:04

4

检查事项:

  • 你并不需要设置LD_LIBRARY_PATH也不ORACLE_HOME。但是,您需要将D:\instantclient_11_2添加到PATH环境变量中,然后重新启动计算机,以便应用更改。

  • 在配置PHP,检查你的Oracle客户端库的实际工作(例如,尝试用SQL Developer的连接)。

  • 注释掉extension=php_oracle.dll。它属于旧的和不推荐的Oracle扩展。

  • 仔细检查php_oci8.dll文件是否真的在c:\php\ext\php_oci8.dll

+1

我所做的一切都是你的建议,但是.... :( – afsane 2011-12-26 13:30:18

+0

@afsane的 - 那么很明显:它不独立工作,也不能PHP下工作 – 2011-12-27 09:11:08

+0

这是为我工作我傻,我忘了重启系统 – siniradam 2013-01-04 13:22:39

0

只需添加这行来指向扩展的位置php.in文件,应该知道它们的位置,但通常在PHP文件夹中。

extension_dir = C:\xampp\php\ext ;这是我使用XAMPP的,是明智的。

它为我工作。问题在于访问扩展,与Oracle库无关。

相关问题