2

我以前做过,但这是一个漫长的试错过程,导致我的测试机器有多个 php、oci8 和即时客户端副本,我仍然不确定我做了什么这行得通。

到目前为止,我已经设置yum使用 remi 存储库,完成yum install php php-oci8 php-pdo,并下载了 oracle 即时客户端并完成rpm -Uh oracle-instantclient11.2-basic-11.2.0.2.0.x86_64\ \(1\).rpm

但是,当我phpinfo()在页面上进行操作时,它仍然没有将 oci8 列为模块之一。

我认为错误与ORACLE_HOME环境变量有关,但我不确定它应该设置为什么。现在我有:

SetEnv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
SetEnv ORACLE_HOME /usr/lib/oracle/11.2

在 /etc/httpd/conf/httpd.conf

上次我得到这个工作时,我想我只是继续卸载 php 和 php-oci8 并重新安装,直到一切正常。

我的工作服务器的 ORACLE_HOME 设置如下: 工作服务器

但是新的不工作的有 ORACLE_HOME 在这里设置:

非工作服务器

如何设置Enviromentphpinfo() 部分中的 ORACLE_HOME?

4

2 回答 2

1

经过反复试验,我找到了问题的答案。我安装了 oci8PECL而不是使用yum和 REMI 存储库,但我认为这也适用于使用 yum 安装它。

解决方法:关闭selinux(将其置于permissive模式)。这实际上是 oracle 建议的解决方案。您必须在安装前将其关闭以使其正确安装,并保持关闭以使其正常工作。

于 2011-06-13T21:54:54.787 回答
0

我不确定为什么 Apache 环境中显示的内容与 httpd.conf 文件中显示的内容不同,除非您更改了某些内容,但您可以使用putenv设置环境变量,这样putenv("ORACLE_HOME=" . $_SERVER['ORACLE_HOME']);代码顶部的内容可能会起作用。或者,如果需要,对值进行硬编码。

于 2011-06-10T01:50:26.770 回答