【问题标题】:Setup oci8 on rhel 6 with REMI repository使用 REMI 存储库在 rhel 6 上设置 oci8
【发布时间】:2011-09-12 00:40:02
【问题描述】:

我以前做过,但这是一个漫长的试错过程,导致我的测试机器有多个 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 设置在这里:

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

【问题讨论】:

    标签: php apache oracle-call-interface rhel


    【解决方案1】:

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

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

    【讨论】:

    • 我再次经历了这个过程,我无法通过yum 使用 REMI 存储库正确安装它,但我能够再次使用pecl。我遇到了错误no acceptable C compiler found in $PATH。最后发现这意味着你需要 gcc。在我安装它并使用extension=oci8.so 行创建/etc/php.d/oci8.ini 之后,我终于让它再次工作了。每次使用 oci8 时都会反复试验!
    【解决方案2】:

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

    【讨论】:

    • 我的 Apache 环境中显示的是 httpd.conf 中的内容。问题(我认为!)是我需要变量位于Environment,而不是Apache Environment,就像它在我的原始服务器上一样。
    • 使用 putenv 命令,如我所示。您可以将其放在 phpinfo() 语句上方并查看结果,然后您的系统环境属性中应该有 ORACLE_HOME。
    • 好的,putenv() 把变量放在那里。不过,事实证明这不是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2017-07-16
    • 2012-12-05
    • 2014-07-23
    • 2015-04-10
    • 2021-01-09
    • 1970-01-01
    相关资源
    最近更新 更多