Oracle的指令指定设置DYLD_LIBRARY_PATH.这使我的应用程序依赖于随机用户的配置,并且设置起来非常麻烦.
如何避免设置任何环境变量?
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/intel_macsoft.html
linux的相关说明:在Linux上安装Oracle Instantclient而不设置环境变量?
我正在编写一个使用Oracle数据库的python上的web服务.我已经安装并运行了cx_Oracle但是当我使用Apache将我的python代码作为CGI运行时,我遇到了一些问题.
例如,以下代码在命令行中完美运行:
#!/usr/bin/python
import os
import cx_Oracle
import defs as df
os.putenv('ORACLE_HOME', '/oracledb/10.2.0/')
os.putenv('LD_LIBRARY_PATH', '/oracledb/10.2.0/lib')
con = cx_Oracle.Connection(df.DB_USER, df.DB_PASS, df.DB_SID)
print con
Run Code Online (Sandbox Code Playgroud)
但是当我以CGI运行它时,我在apache错误日志中得到了"cx_Oracle.InterfaceError:无法获取Oracle环境句柄".
我在网上搜索,每个人都说我必须设置ORACLE_HOME和LD_LIBRARY_PATH环境变量.不知何故,CGI脚本无法访问此环境变量,即使我使用os.putenv您在代码中看到它们来定义它们也是如此.
我做错了什么?谢谢!
我在OSX 10.9上使用Xamppp for macos with Php 5.4.19我安装了oracle instantclient,我可以看到oci8在phpinfo中启用(如下):
OCI8支持已启用 版本1.4.9修订版$ Id:44bfa713983a99b3e59477f6532e5fb51b6dee94 $活动持久连接0活动连接0
我可以看到DYLD_LIBRARY_PATH也是在我的phpinfo中设置的.
DYLD_LIBRARY_PATH /usr/local/instantclient/11.2.0.3
但是当我尝试连接php时,我现在有两天同样的错误:(
警告:oci_connect():OCIEnvNlsCreate()失败.系统出现问题 - 请检查DYLD_LIBRARY_PATH是否包含第6行的info.php中带有Oracle Instant Client库的目录警告:oci_connect():尝试在info.php中检索错误ORA-01804时出错6
任何帮助都会很棒.谢谢.