首页 文章

安装php oracle client oci8有什么问题

提问于
浏览
1

我尝试了所有安装PHP Oracle客户端的程序 .

1)我安装了客户端版本8和32位 .

2)我在php.ini中取消注释了oci

3)重新启动Wamp:

enter image description here

4)不确定是否真的安装但我得到了php.ini中的引用:

enter image description here

enter image description here

5)但仍然无法连接:

enter image description here

Tyhanks任何帮助

EDIT

在php日志中发现这些错误:[16-Apr-2018 14:35:03 UTC] PHP警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.5.12/ext/php_oci8.dll ' - %1不是有效的Win32应用程序 .

在第0行的未知中

[16-Apr-2018 14:35:03 UTC] PHP警告:PHP启动:无法加载动态库'c:/wamp/bin/php/php5.5.12/ext/php_oci8_11g.dll' - %1不是有效的Win32应用程序 .

在第0行的未知中

1 回答

  • 1

    manual告诉你哪里出错了:

    • 1)我安装了客户端版本8和32位 .

    您正在使用不兼容的库 . OCI8 requirements文件的第一段说明(强调我的):

    OCI8 1.4扩展包含在PHP 5.3,PHP 5.4和PHP 5.5中 . 它也可以从PECL获得 . 较新的OCI8 2.0版本仅可从PECL获得 . OCI8 1.4需要Oracle 12c,11g,10g或9iR2客户端库,并将在PHP 4.3.9及更高版本上安装 . OCI8 2.0需要Oracle 12c,11g或10g客户端库,并将在PHP 5.2及更高版本上安装 .

    • 2)我在php.ini中取消注释了oci

    您的屏幕截图显示您已启用 php_oci8php_oci8_11g . 您应该只启用其中一个扩展,如OCI8 installation文档中所述(再次强调我的):

    在Windows上使用Oracle 10gR2客户端库时,取消注释php.ini行extension = php_oci8.dll . 使用Oracle 11gR2或更高版本的客户端库时,请取消注释extension = php_oci8_11g.dll或extension = php_oci8.dll . 使用Oracle 12c库时,请使用extension = php_oci8_12c.dll或extension = php_oci8_11g.dll或extension = php_oci8.dll . 一次只能启用其中一个DLL .

    • 4)不确定是否真的安装但是我在php.ini中得到了引用:

    它已安装并已启用,但未正确配置 . 您的屏幕截图显示了PHP的编译方式以及各种代码作者,而不是您当前配置的任何内容 .

    要使扩展工作,请尝试以下操作:

    • 卸载并删除'Client version 8'的所有痕迹 .

    • 安装Oracle InstantClient 11g或12c . 这通常意味着简单地将.zip文件提取到文件夹,例如, c:\instantclient_12_1 .

    • 在InstantClient下载页面上,在InstantClient下载链接之后,该行上有一个指向所需VC运行时的链接 . 下载并安装它 .

    • 更新 PATH 环境变量以包括解压缩InstantClient文件的位置,例如 c:\instantclient_12_1 .

    • php.ini 中启用 php_oci8_11g.dll or php_oci8_12c.dll .

    您可能需要重新启动以确保系统可以看到 PATH 更改 .

    请注意,WAMP可能包含多个 php.ini 文件 . 确保编辑正确的 .

相关问题