带有 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 连接问题的主要内容,如果未能解决你的问题,请参考以下文章
window Appserv 2.5.10 php版本升级 由5.2.6版本升级到php-5.3.27-Win32-VC9-x86版本