【问题标题】:OCIEnvNlsCreate() failed - please check that ORACLE_HOME and > LD_LIBRARY_PATHOCIEnvNlsCreate() 失败 - 请检查 ORACLE_HOME 和 > LD_LIBRARY_PATH
【发布时间】:2017-04-27 07:56:06
【问题描述】:

ubuntu 16.10/nginx/php7.0/oracle 11 xe

我正在尝试通过 PHP 连接到 Oracle 数据库。我收到以下错误。

$conn = oci_connect('login', 'pass', 'localhost/xe');

警告:oci_connect():OCIEnvNlsCreate() 失败。有东西 您的系统有问题 - 请检查 ORACLE_HOME 和 LD_LIBRARY_PATH 已设置并指向正确的目录 /var/www/blah.php 第 26 行

警告:oci_connect():尝试检索错误文本时出错 /var/www/blah.php 第 26 行中的 ORA-01804

真正请求变量,它们将是空的。此代码返回空字符串。

$test = getenv('LD_LIBRARY_PATH')."  ".getenv('ORACLE_HOME');
print ("$test");

但在 phpinfo() 中会显示出来。

我可以将环境变量写入每个文件,但这不是一个选项。

putenv("ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe");
putenv("LD_LIBRARY_PATH=-Wl,-rpath,/u01/app/oracle/product/11.2.0/xe/lib -L/u01/app/oracle/product/11.2.0/xe/lib -lclntsh");

我能做什么?

【问题讨论】:

  • 你终于解决问题了吗?在那种情况下,怎么办?谢谢

标签: php nginx oracle-call-interface


【解决方案1】:

我通过从文件 /etc/php-fpm.d/www.conf 中的 ;clean_env=no 行中删除分号解决了这个问题.修改此文件后记得重启 php-fpm 服务。

【讨论】:

    【解决方案2】:

    我们没有相同的基础架构,但我刚刚解决了同样的问题:

    • 阿帕奇
    • CentOS7
    • PHP 5
    • Oracle 12cR1

    消息说:

    请检查 ORACLE_HOME 和 LD_LIBRARY_PATH 是否已设置并指向正确的目录

    在 apache 中有一个可以设置环境变量的文件: /etc/sysconfig/httpd。 nginx 必须有一个配置文件。

    我添加了所需的环境变量。 假设

    • ORACLE_HOME 是 /oracle/product/12.1.0/dbhome_1
    • Oracle 客户端安装在 /oracle/product/12.1.0/client

    添加:

    ORACLE_HOME=/oracle/product/12.1.0/dbhome_1
    LD_LIBRARY_PATH=/oracle/product/12.1.0/dbhome_1/lib:/oracle/product/12.1.0/dbhome_1/network/lib:/oracle/product/12.1.0/client/lib
    

    我还补充了:

    TNS_ADMIN=/oracle/product/12.1.0/dbhome_1/network/admin
    ORACLE_SID=<your sid>
    

    更新/etc/sysconfig/httpd后,我刚刚重启了Apache的服务httpd,就这样:

    $ sudo systemctl restart httpd
    

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      这与不正确的 NLS_LANG 参数有关。在我的情况下,它被设置为“NA”。解决方法是:

      Windows - NLS_LANG 必须在 Windows 注册表中取消设置(最好重新命名)。在 \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 的注册表中查找 NLS_LANG 子项,并将其重命名。

      Linux/UNIX - 在这里您只需发出 Linux 命令“unset NLS_LANG”

      【讨论】:

        猜你喜欢
        • 2020-10-20
        • 1970-01-01
        • 2016-05-23
        • 2016-06-20
        • 2016-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多