【问题标题】:Fedora apache wsgi python oracleFedora apache wsgi python oracle
【发布时间】:2014-06-09 18:34:34
【问题描述】:

我正在尝试设置 httpd + mod_wsgi(python)。一切正常,除了:

ImproperlyConfigured: Error loading cx_Oracle module: libclntsh.so.11.1:
cannot open shared object file: No such file or directory

现在我知道了 ORACLE_HOMELD_LIBRARY_PATH 变量。它们写在 /etc/profile.d 中。更重要的是,我确实在 ldconfig 路径中​​配置了 libclntsh.so.11.1。而且我在虚拟主机中有一个SetEnv,我相信它对 mod_wsgi 没有任何影响。有人遇到同样的问题吗?

我还应该指出,在 Ubuntu 中,您可以简单地将 ORACLE_HOMELD_LIBRARY_PATH 放在 /etc/apache2/envvars 中,这应该可以解决问题,而在 Fedora 中将环境变量传递给 apache 要可怕得多。

【问题讨论】:

    标签: python apache oracle11g fedora wsgi


    【解决方案1】:

    不要依赖 LD_LIBRARY_PATH,因为在某些 Apache 安装中正确设置它可能会很棘手,因为 envvars 文件会被忽略。

    当您安装 cx_Oracle 时,不要不公正地依赖它,将 LD_RUN_PATH 环境变量设置为保存 Oracle 共享库的库目录的位置。

    例如:

    LD_RUN_PATH=/usr/local/oracle/lib pip install cx_Oracle

    这将导致库目录嵌入到 cx_Oracle C 扩展中,并且会在运行时自动找到,无需稍后设置LD_LIBRARY_PATH

    【讨论】:

    • 但是如果我从用户运行 django 服务器并设置了LD_LIBRARY_PATH 那么它可以正常工作。
    • 您是否尝试按照所述设置 LD_RUN_PATH 重新安装 cx_Oracle?只需确保使用正确的库目录来安装 Oracle 共享库即可。
    猜你喜欢
    • 1970-01-01
    • 2016-12-23
    • 2016-12-19
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多