带有 PHP 版本 5.6.14 的 Windows Server 2012 上的 OCI 连接问题

Posted

技术标签:

【中文标题】带有 PHP 版本 5.6.14 的 Windows Server 2012 上的 OCI 连接问题【英文标题】:OCI Connect Issue at Windows Server 2012 with PHP Version 5.6.14 【发布时间】:2016-02-26 21:06:24 【问题描述】:

OCI Connect

基于上述,它指出应该避免在 Windows 上进行 OCI 连接。有人在 Windows 上配置过吗?我已经使用带有 php 5.6 和 Oracle 11g 的 Windows Server 2012 完成了所有其他线程,this 和 this,但仍然有问题:

调用未定义函数 oci_connect()

我已经设置路径c:/instantclient_12_1

php.ini下可以看到:

;extension=php_oci8.dll 扩展=php_oci8_11g.dll

/php/ext

只有文件:php_oci8_12c.dll

这是 phpinfo() 显示配置命令的输出:

cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without- pi3web" "--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" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"

错误undefined function oci_connect()的原因是什么?

【问题讨论】:

如果您在这里没有得到答案,您可能想在更适合此类问题的 Serverfault.com(SO 的姊妹网站)上提问。 PHP/OCI 在 Windows 上没问题;我让它在几个生产服务器上运行。您已经链接到my previous answer,它与您在该主题上找到的一样全面。您是否检查过php_errors.log 文件中的启动错误? 并在命令行中检查where oci* 的输出,以确认系统路径包含对您的oci 客户端文件的正确引用。 我已经在我的帖子中链接了你的答案 php5.dll is missing 很可能意味着您正在尝试将非线程安全文件与 PHP 的线程安全构建一起使用。尝试从PECL 下载正确的文件。 【参考方案1】:

尝试使用以下方法:

extension=php_oci8_12c.dll

在您的 php.ini 中,在我的情况下(Windows Server 2008,PHP 5.6)有帮助。

【讨论】:

将文件 php_oci8_11g.dll 放入 /php/ext 文件夹后问题得到解决

以上是关于带有 PHP 版本 5.6.14 的 Windows Server 2012 上的 OCI 连接问题的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 5.1.73升级到5.6.14

CentOS 6.5下编译安装MySQL 5.6.14

window Appserv 2.5.10 php版本升级 由5.2.6版本升级到php-5.3.27-Win32-VC9-x86版本

LNMP搭建01 -- 编译安装MySQL 5.6.14 和 LNMP相关的区别

window下安装php调试工具xdebug

php扩展之redis的安装-Window环境