doukuiqian9911 2016-08-01 22:22
浏览 832
已采纳

php_oci8_11g.dll不是有效的Win32应用程序

This topic has been asked several times, but every solution is not working in my machine.

I am trying to connect windows 7 with a 10G oracle dabatase, but the oci extension is not loaded. Here some facts:

C:\php>php -m

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oci8_11g.dll' - %1 is not a valid Win32 application.

C:\php>php -v

PHP 5.6.19 (cli) (built: Mar  2 2016 20:09:42)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
  • 64x architecture
  • TS VC11

C:\>tnsping localdb

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 02-AUG-2
016 22:37:50

Troubleshooting

  • I am using oci8 2.0.11. Dropped them in ext/ folded. The rest of extesions are loaded pretty good.
  • PATH variable contains the ORACLE_HOME and php path
  • Just looked up for required oracle dll files and they are there:

    C:\>where oci*

    C:\oracle\product\10.2.0\db_2\BIN\oci.dll
    C:\oracle\product\10.2.0\db_2\BIN\ocijdbc10.dll
    C:\oracle\product\10.2.0\db_2\BIN\ociw32.dll
    
  • Oracle Client is not required in my side because the database is installed in the same machine, and it install all the required libraries

What other thing am I missing? Thank you in advance

  • 写回答

2条回答 默认 最新

  • doufu2496 2016-11-04 20:44
    关注

    After months I found the solution. Consider the following infrastructure:

    • Windows Server 2012 R2 Standard Edition x64
    • Apache/2.4.18 (Win64) VC11
    • PHP 5.6.19 x86 VC11 TS

    Take close attention when downloading Oracle Instant Client:

    • No matter if your server is x64 or x86 arquitecture, you must download it for 32-bits
    • As you note, PHP is compiled in VC11, so you must download OIC with VC11 sources, this can be confirmed unzipping the downloaded file and check if a folder vc11 is there.

    Both details are very important. Once I meet both requirements the error has gone I now I am able to connect to Oracle via PHP successfully

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘