Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试加载PHP_oci8.dll时启动时出现PHP警告_Php_Oracle_Oracle Call Interface - Fatal编程技术网

尝试加载PHP_oci8.dll时启动时出现PHP警告

尝试加载PHP_oci8.dll时启动时出现PHP警告,php,oracle,oracle-call-interface,Php,Oracle,Oracle Call Interface,我正在使用XAMPP并尝试为sql配置Oracle连接 我取消了行extension=php_oci8.dll的注释,起初它以一个错误结束(oci.dll丢失),但后来我从Oracle网页下载了instantclient。我尝试了10.2、11.2和12.1版本,但都不起作用。显然,我已经将这些库的路径添加到我的pathenv变量中 我在Apache启动时收到的警告是:PHP警告:PHP启动:在第0行的未知中 尝试连接时出现的错误是:PHP致命错误:调用… 我试过使用php\u oci8.dll

我正在使用XAMPP并尝试为sql配置Oracle连接

我取消了行
extension=php_oci8.dll
的注释,起初它以一个错误结束(oci.dll丢失),但后来我从Oracle网页下载了instantclient。我尝试了10.2、11.2和12.1版本,但都不起作用。显然,我已经将这些库的路径添加到我的
path
env变量中

我在Apache启动时收到的警告是:
PHP警告:PHP启动:在第0行的未知中

尝试连接时出现的错误是:
PHP致命错误:调用…

我试过使用
php\u oci8.dll
php\u oci8\u 11g.dll
。这些文件位于我的
php/ext
目录中(它们包含在xampp中),我的instantclient被添加到
PATH
中,如果我禁用这些模块,则不会显示警告。我已尝试重新启动服务和计算机

你能帮我找到一个解决方案如何正确配置它吗?我正在使用具有管理权限的Windows 8.1

顺便说一句,我的
phpinfo()
表示OCI8已激活(但像
oci\u connect
这样的功能仍然不起作用)


编辑:当我尝试手动运行PHP时,我最终得到了显示错误的错误:
无法加载动态库“C:\Program Files(x86)\PHP\ext\PHP\oci8\u 11g.dll”-%1不是有效的Win32应用程序。在第0行的“未知”中,您能帮我找到哪里可以下载正确的版本吗?

看起来您的扩展未正确安装。尝试使用pecl对其进行更新或重新安装

pecl install extname

您还应该检查php.ini中的extension_dir指令,并检查php文件夹是否添加到路径中。64位版本的instantclient存在问题。如果您曾经遇到过相同的问题,请安装32位版本的instantclient

老实说,最简单的方法就是遵循正确的指示:


我尝试了很多其他的建议,但它们都对我很不利(不仅仅是因为我使用了不同的位版本-我还按照愚蠢的建议到处复制文件,很难纠正)

这是因为你的Oracle是64位的。删除它并安装32位版本的Oracle客户端,它就会工作。

有另一种解决方法:安装完整的Oracle客户端,而不是基本的zip,您可以在Oracle站点(大约1Gb)获得它:

我使用的是Windows10、Apache2.4、PHP7.1(全部为x64),它可以正常工作。还尝试了PHP5.6,它也可以工作。仍然使用基本客户端zip中的php_oci8_11g.dll来匹配您的php和系统版本

您可以搜索该站点以查找较旧的客户端版本(11g、32位等),但我正在使用de 12c客户端并访问Oracle 11g企业服务器


我发现了很多相同错误的发生,但是没有一个给我这个解决方案。希望有帮助。

在重新安装其他版本之前,您是否清理了所有Oracle安装?我根本没有在电脑上安装Oracle。我正在使用VPN连接连接到服务器。我下载了sqldeveloper,它运行正常(尽管它没有安装任何东西),我尝试升级和安装,但我收到一条消息:
pecl-upgrade-oci8下载oci8-2.0.6.tgz。。。开始下载oci8-2.0.6.tgz(189668字节)……完成:189668字节11个源文件,生成警告:php_bin E:\xampp\php\php.exe似乎有后缀\php.exe,但是con fig变量php\u后缀不匹配错误:DSP oci8.DSP不存在。
并且正确设置了my
扩展目录
,并且将my php/ext目录添加到
路径
。我还将PHP dir添加到PATH中。