【发布时间】:2015-03-02 16:25:27
【问题描述】:
我刚刚在我的 win7 (x64) PC 上安装了一个 acutal XAMPP 来编写一些 PHP 脚本来连接到 Oracle 数据库。我还安装了一个普通的 oracle 11.2.0 客户端(PATH 和 ORACLE_HOME 设置正确)。客户端用于我的所有其他工作,没有任何问题。
当我尝试连接到 Oracle 数据库时,PHP 失败并显示 Fatal error: Call to undefined function oci_connect() in。我记得几年前我在 x32 winXP PC 上做同样的事情时,我必须在我的 php.ini 中启用“oci8-extensions”。
但是我当前的 xampp 在 php/ext 文件夹中没有这些 dll(只有一个 php_oci8_12c.dll 在 apache 启动时引发了几个未知函数的错误,并且适用于 oracle 12 而不是 11)并且 php.ini 也说它们是仅即时客户端需要。
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
此外,SO-questions 表明在普通客户端上使用评论扩展将不起作用(我也尝试过)。
我试图用谷歌搜索解决方案,但所有“解决方案”都是“安装 win32 即时客户端并启用扩展”。但我不能这样做,因为我的大部分 QA 工作都需要安装和配置的 11.2.0-client,而且我的 php/ext 文件夹中没有 .dll
我还尝试将 ociw32.dll 从 client/bin 文件夹复制到 php/ext 文件夹,但 apache 说它不是 PHP 库。
那么我怎样才能让 PHP oracle 库在 x64 win7 上使用 oci8 for XAMPP 不安装 win32 Oracle Instant Client 并破坏我当前的设置?
编辑:我还尝试了in the PHP: Installation Manual (Post of: samantha dot vincent at gmail dot com) 中描述的步骤,包括更改我的 apache-http.conf 也没有帮助。
我也对我的phpinfo()-输出感到困惑
Configure Command "--with-pdo-oci=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared"
【问题讨论】:
标签: php oracle apache oracle11g oracleclient