2010-08-19 52 views
1

我已经按照电子书Underground Oracle-PHP-manual在ubuntu上安装了oracle xe 10g,apache,php。但是当我运行一些文件连接oracle-PHP使用oci_connect()显示错误:Ubuntu上的oci8错误

Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. 
There is something wrong with your system - 
please check that ORACLE_HOME and LD_LIBRARY_PATH 
are set and point to the right directories 
in /usr/local/apache/htdocs/con_oracle.php on line 2 

请帮助!!!

+0

可能是[superuser.com](http://superuser.com)或者[Ubuntu-Stack Exchange](http://ubuntu.stackexchange.com/)的更好的问题。 – Troubadour 2010-08-19 10:10:11

回答

0

那么,$ ORACLE_HOME和$ LD_LIBRARY_PATH指向正确的目录吗?

+1

特别记住Apache可能作为守护程序或guest或其他用户运行,您需要确保ORACLE_HOME和LD_LIBRARY_PATH可用于该帐户,并在必要时将其设置在/ usr/local/apache/bin/envvars中 – 2010-08-19 10:39:47

0

编辑您的envvars中文件在/ usr /本地/ Apache /斌/ envvars中

添加这个,如果你使用Oracle XE 10g的

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server 
export LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib: 

好运:d

1

我比花更有这个错误6小时。 所有变量都设置好了,在oracle文件夹集上读取权限,在网上读了几十页,但没办法解决这个问题。

最后我试了最后一件事。 失败OCIEnvNlsCreate()失败无论如何都归因于文件夹/opt/oracle/instantclient的权限!当我将所有者和组设置为www-data(就我而言),连接建立成功! :-) 我通过网络阅读了关于权限的内容,但并不清楚这一点。

奇怪的是,这是我第二次安装这个模块,而第一个没有这样的问题!

我期望这可能对任何人都有帮助,即使对我来说,当我需要在将来再次安装它时! :-D 此致敬礼。