oci_connect():OCIEnvNlsCreate() 在 REHL 8 中使用 HTTPD 失败

问题描述 投票:0回答:1

我需要您的帮助来在 PHP 中连接 Oracle。使用Red hat服务器8.9,PHP版本为8,启用OCI8,安装HTTPD Web服务器。 无论我喜欢什么步骤,

export ORACLE_HOME=/home/oracle/Avani/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=/home/oracle/Avani/dbhome_1/lib/instantclient:$LD_LIBRARY_PATH

Oracle 数据库使用类似这样的方式在 Redhat 服务器终端中连接

Php dbconnect.php

我收到数据库已连接消息。但是当我尝试在浏览器上连接时,它显示以下错误,

Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that LD_LIBRARY_PATH includes the directory with Oracle Instant Client libraries in /var/www/html/db2.php on line 13

Warning: oci_connect(): Error while trying to retrieve text for error ORA-01804 in /var/www/html/db2.php on line 13

Warning: Trying to access array offset on false in /var/www/html/db2.php on line 17
Connection failed:

我尝试了所有可能的方法,这已经在互联网上提供了,比如 Web 服务器上设置的 LD_LIBRARAY_PATH。 但仍然出现这种错误。

如果您有任何解决方案,我将非常感激。预先感谢。

php oracle oracle12c redhat oracle19c
1个回答
0
投票

使用 Oracle Instant Client 时切勿设置 ORACLE_HOME。 另外,对于 Instant Client,设置 ORACLE_SID 没有意义。 所以取消这些设置。

但总的来说,我建议安装 Instant Client RPM 而不是 ZIP。 RPM 将在其安装过程中正确设置库搜索路径。 然后您可以取消设置所有 Oracle 环境变量。 通过 Apache 传递环境变量会很棘手,因为您需要将它们放入正确的文件中。 在 shell 中设置变量通常是不够的并且不起作用

© www.soinside.com 2019 - 2024. All rights reserved.