我会快点。
我在Fedora 19系统上安装了Oracle 11g(包含适当的数据库,用户等),Apache 2.4.6和PHP 5.5.4。
我想将PHP连接到Oracle。我真正想要做的是下载MDB2_Driver_oci8,我认为这很容易,但在我做这样的事情之前,PHP需要启用该插件,所以这就是我所做的:
pecl install oci8
yum groupinstall "Development Tools"
yum install php-devel
安装它。Configuration option 'php_ini' is not set to php.ini location
You should add 'extensions=oci8.so' to php.ini
首先,我做了locate oci8.so
- 在/ usr / lib64 / php / modules /
中找到它
其次,我在php.ini文件中添加了它告诉我的内容
第三,我检查了通常的php_info()测试页面 - 没有提到OCI8。嗯,哦。
第四,将php -
i和php -m
列为oci8列为其中一个模块。奇怪的。
无奈之下,我继续下载了MDB2_Driver_oci8。也许这会解决问题。不。
当我加载我的PHP网页时,它返回以下内容:
错误消息:扩展名oci8未编译为PHP
以及: MDB2错误:未找到
奇怪。然后我决定检查错误日志:
PHP启动 - 无法加载动态库'/usr/lib64/php/modules/oci8.so' - libclntsh.so.11.1:无法打开共享对象文件:第0行的“未知”中没有此类文件或目录
现在我被卡住了。我试着进入php.ini,发现extension_dir
被注释掉了。我把它放回去,这似乎只是破坏了东西。
注意事项:
./configure --with-oci8
不起作用。 Fedora说没有这样的目录。这只是我在一系列问题中遇到的一个问题,这些问题涉及复制已经存在且正常工作但很快死的设置。似乎每当我想解决问题时,我都必须先做X.通过做X,我发现了另一个问题,我必须通过做Y来解决,这有其自身的问题等等。
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
我知道这个问题有点陈旧 - 但我在这里写这篇文章,其他人一直在寻找解决方案。
PHP扩展程序目录
要获取PHP扩展目录,请运行此命令
php-config --extension-dir
ORACLE配置
当你运行oracle的config命令时,你需要提供你的Oracle主目录(假设你已经安装了ORACLE XE):
./configure -with-oci8=shared,$ORACLE_HOME/xe
SELinux政策
您需要调整SELinux政策以支持您要实现的目标。不建议完全禁用它。
在Fedora系统上,尝试运行:
which audit2allow
如果您收到错误消息,表明找不到audit2allow
,则需要安装此软件包:
yum install policycoreutils-python
获得此软件包后,您可以将审核日志文件传输到audit2allow
以使其创建策略文件:
grep httpd /var/log/audit/audit.log | audit2allow -m httpd > http.te
这将创建一个人类可读的文件http.te
,以便您查看它将对SELinux配置添加的策略添加内容。如果你对修改没问题,那么运行这些命令(注意以下命令中的大写字母M与之前的小写字母m )
grep httpd /var/log/audit/audit.log | audit2allow -M httpd
semodule -i httpd.pp
这可能需要几秒钟才能运行 - 您可以通过运行来验证策略是否已安装:
semodule -l | grep httpd
您需要重新启动httpd,以便它可以尝试加载oci8.so插件
service httpd restart
HTH
答案 1 :(得分:-1)
在互联网上阅读了很多内容之后,我发现了这个page,表示我应该禁用SELinux,然后重启。
这就是诀窍。