【发布时间】:2013-11-11 08:31:21
【问题描述】:
我会尽快完成的。
我在 Fedora 19 系统上安装了 Oracle 11g(带有适当的数据库、用户等)、Apache 2.4.6 和 PHP 5.5.4。
我想将 PHP 连接到 Oracle。我真正想做的是下载MDB2_Driver_oci8,我认为这很容易,但是在我做这样的事情之前,PHP需要启用那个插件,所以这是我做的:
- 尝试通过以下方式安装 oci8:
pecl install oci8 - 当最初几次都不能正常工作时,我发现出于某种原因,我需要“开发工具”——来自
yum groupinstall "Development Tools" - 后来我发现PHP实际上并没有做oci8——它是PHP Devel。所以,我也必须通过
yum install php-devel安装它。 - 然后,我终于安装了 oci8。它要求 Oracle 目录,就是这样。但它说的是:
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 行的 Unknown 中没有这样的文件或目录
现在我被困住了。我尝试进入 php.ini,发现 extension_dir 被注释掉了。我把它放回去了,这似乎只是破坏了一些东西。
注意事项:
- 我按照this (link) 指导如何配置 PHP 和安装 oci8。
-
./configure --with-oci8不起作用。 Fedora 说没有这样的目录。 - 由于网页文件和实际服务器位于同一台 PC 上,我没有安装 Oracle 客户端文件。
- 默认情况下,php.ini 中的 extension_dir 已被注释掉。
这只是我在关于复制已经存在且正在工作但即将死去的设置的一长串问题中的一个问题。似乎每当我想解决问题时,我都必须先做X。通过做X,我发现了另一个问题,我必须通过做Y来解决这个问题,它有它自己的问题等等。
任何帮助将不胜感激。谢谢。
【问题讨论】: