我尝试了安装 PHP Oracle 客户端的所有过程。
1)我安装了客户端版本8和32位。
2)我在php.ini中取消了oci的注释
3)重新启动Wamp:
4)不确定是否真的安装,但我在 php.ini 中得到了引用:
5)但仍然无法连接:
泰汉克斯寻求任何帮助
EDIT
在php日志中发现这些错误:
[2018 年 4 月 16 日 14:35:03 UTC] PHP 警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.5.12/ext/php_oci8.dll' - %1 不是有效的 Win32 应用程序。
在第 0 行未知
[2018 年 4 月 16 日 14:35:03 UTC] PHP 警告:PHP 启动:无法加载动态库 'c:/wamp/bin/php/php5.5.12/ext/php_oci8_11g.dll' - %1 不是有效的 Win32 应用程序。
在第 0 行未知
The manual http://php.net/manual/en/book.oci8.php告诉你哪里出了问题:
-
1)我安装了客户端版本8和32位。
您正在使用不兼容的库。 OCI8第一段要求 http://php.net/manual/en/oci8.requirements.php文件指出(强调我的):
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_oci8
and php_oci8_11g
。您应该仅启用其中一个扩展,如 OCI8 中所述安装 http://php.net/manual/en/oci8.installation.php文档(再次强调我的):
在 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 中得到了引用:
It's 已安装 and enabled, 但不是配置的正确。您的屏幕截图显示了 PHP 的编译方式以及各个代码作者,但没有显示有关您当前配置的任何信息。
要使扩展正常工作,请尝试以下操作:
- 卸载并删除“客户端版本 8”的所有痕迹。
- 安装 Oracle InstantClient 11g 或 12c。这通常意味着只需将 .zip 文件提取到文件夹中,例如
c:\instantclient_12_1
.
- 在 InstantClient 下载页面上,InstantClient 下载链接后面有一个指向所需 VC++ 运行时的链接。下载并安装它。
- 更新你的
PATH
环境变量以包含您提取 InstantClient 文件的位置,例如c:\instantclient_12_1
.
- In
php.ini
启用任一php_oci8_11g.dll
or php_oci8_12c.dll
.
You might需要重新启动以确保PATH
更改对系统是可见的。
请注意,WAMP 可能包含多个php.ini
文件。确保编辑正确的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)