首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP、PEAR和oci8配置

PHP、PEAR和oci8配置
EN

Stack Overflow用户
提问于 2013-11-11 08:31:21
回答 2查看 1.2K关注 0票数 0

我会快点的。

我在Fedora 19系统上安装了Oracle 11g (带有适当的数据库、用户等)、Apache2.4.6和PHP5.5.4。

我想将PHP连接到Oracle。我真正想要做的是下载MDB2_Driver_oci8,我认为这很容易,但是在我做这样的事情之前,PHP需要启用插件,下面是我所做的:

  • 尝试通过以下方式安装oci8:pecl install oci8
  • 当它在最初几次不起作用时,我发现出于某种原因,我需要“开发工具”--通过yum groupinstall "Development Tools"
  • 后来我发现PHP实际上不做oci8 --这是PHP。所以,我也不得不通过yum install php-devel安装它。
  • 然后,我终于安装了oci8。它要求提供甲骨文目录,仅此而已。但声明如下: Configuration option 'php_ini' is not set to php.ini location You should add 'extensions=oci8.so' to php.ini

首先,我在/usr/ did 64/php/modules/中找到了一个locate oci8.so

其次,我将它告诉我的内容添加到php.ini文件中。

第三,我检查了通常的php_info()测试页面--没有提到OCI8。啊哦。

第四,运行php -i和php -m都将oci8列为模块之一。真奇怪。

绝望中,我继续下载了MDB2_Driver_oci8。也许这能解决问题。不是的。

当我加载PHP网页时,它返回了以下内容:

错误消息:扩展oci8未编译到

以及:MDB2错误:未找到

真奇怪。然后我决定检查错误日志:

无法加载动态库‘/usr/ line 64/php//oci8.so’- libclntsh.so.11.1:无法打开共享对象文件:在第0行中没有这样的文件或目录

现在我被困住了。我试着进入php.ini,发现extension_dir被注释掉了。我把它放回去了,好像只是把东西弄坏了。

注意事项:

  • 我遵循了关于如何配置PHP和安装这(链接)的oci8指南。
  • ./configure --with-oci8不工作。Fedora说没有这样的目录
  • 由于网页文件和实际服务器都驻留在同一台PC上,所以我没有安装Oracle客户端文件。
  • 默认情况下,extension_dir在php.ini中被注释掉。

这只是我的问题之一,在一个长期的问题与复制一个已经存在和工作,但死亡,设置。似乎每当我想要解决一个问题时,我都得先做X。通过做X,我发现了另一个问题,我必须通过做Y来解决,它有它自己的问题,等等。

任何帮助都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-12 03:59:35

在互联网上读了很多之后,我找到了这个页面,这表明我应该禁用SELinux,然后重新启动。

这招成功了。

票数 -1
EN

Stack Overflow用户

发布于 2014-12-11 14:50:26

我知道这个问题有点老了--但我在这里写这个,以防其他人来找解决办法。

PHP扩展目录

要获得PHP扩展目录,请运行以下命令

代码语言:javascript
复制
php-config --extension-dir

ORACLE配置

当您运行oracle的config命令时,您需要将它与Oracle Home目录一起提供(假设您已经安装了ORACLE XE):

代码语言:javascript
复制
./configure -with-oci8=shared,$ORACLE_HOME/xe

SELinux policy

您需要调整您的SELinux策略,以支持您正在努力实现的目标。不建议完全禁用它。

在Fedora系统上,尝试运行:

代码语言:javascript
复制
which audit2allow

如果收到指示无法找到audit2allow的错误,则需要安装此包:

代码语言:javascript
复制
yum install policycoreutils-python

一旦您有了这个包,您就可以将您的审计日志文件输送到audit2allow中,让它创建您的策略文件:

代码语言:javascript
复制
grep httpd /var/log/audit/audit.log | audit2allow -m httpd > http.te

这将创建一个可供人类阅读的文件http.te,以查看它将对您的SELinux配置添加什么策略。如果您对修改没有问题,那么运行以下命令(注意下面的命令中的大写M与前面的小写m)

代码语言:javascript
复制
grep httpd /var/log/audit/audit.log | audit2allow -M httpd
semodule -i httpd.pp

这可能需要几秒钟的时间--您可以通过运行以下命令来验证策略是否已安装:

代码语言:javascript
复制
semodule -l | grep httpd

您需要重新启动httpd,以便它可以尝试加载oci8.so插件

代码语言:javascript
复制
service httpd restart

HTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19901903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档