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

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 完成虚拟机环境配置,还有安装kettle
  • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗
  • ¥15 用matlab写代码
  • ¥30 motoradmin系统的多对多配置
  • ¥15 求组态王串口自定义通信配置方法或代码?
  • ¥15 实验 :UML2.0 结构建模
  • ¥20 用vivado写数字逻辑实验报告撰写,FPGA实验
  • ¥15 为什么shp文件会有这种小方块?
  • ¥15 ecplise在连接数据库时显示加载驱动成功但是数据库连接失败
  • ¥15 visionmaster启动失败,提示为“机器不满足授权而被禁用”