我会尽快完成的。
我在 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 行的未知中
现在我被困住了。我尝试进入 php.ini,发现extension_dir
被注释掉了。我把它放回去了,这似乎只会破坏东西。
注意事项:
- 我按照这个(链接)指南了解如何配置 PHP 和安装 oci8。
./configure --with-oci8
不起作用。Fedora 说没有这样的目录。- 由于网页文件和实际服务器都位于同一台 PC 上,因此我没有安装 Oracle 客户端文件。
- extension_dir 默认在 php.ini 中被注释掉。
这只是我在关于复制已经存在且正在工作但即将死去的设置的一长串问题中的一个问题。似乎每当我想解决问题时,我都必须先做X。通过做X,我发现了另一个问题,我必须通过做Y来解决这个问题,它有自己的问题等等。
任何帮助将非常感激。谢谢。