我以前做过这个,但这是一个漫长的试验和错误过程导致我的测试机器有多个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?
答案 0 :(得分:1)
经过一些反复试验,我找到了问题的答案。我使用PECL
安装了oci8,而不是使用yum
和REMI存储库,但我认为这也适用于使用yum安装它。
解决方法:关闭selinux(将其置于许可模式)。这实际上是oracle建议的解决方案。您必须在安装之前将其关闭以使其正确安装,并将其关闭以使其正常工作。
答案 1 :(得分:0)
我不确定为什么Apache环境中出现的内容与httpd.conf文件中的内容不同,除非您更改了某些内容,但您可以使用putenv设置环境变量,例如{{1}在您的代码顶部可能会工作。或者如果需要,可以对值进行硬编码。