2016-08-01 159 views
1

本主題已被多次詢問,但每種解決方案都不適用於我的機器。php_oci8_11g.dll不是有效的Win32應用程序

我想連接Windows 7與10G的Oracle數據庫,但oci擴展未加載。這裏是一些事實:

C:\php>php -m

PHP的警告:PHP啓動:無法加載動態庫 'C:\ PHP \分機\ php_oci8_11g.dll' - %1不是有效的Win32應用程序。

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 
  • 64倍架構
  • 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 

故障排除

  • 我正在使用oci8 2.0.11。丟棄在ext/摺疊。其餘的extesions裝載相當不錯。
  • PATH變量包含ORACLE_HOME和php路徑
  • 只是擡頭所需的Oracle DLL文件,而且它們有:

    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客戶端是不是在我身邊必需的,因爲數據庫安裝在同一臺機器上,並安裝所有必需的庫

還有什麼其他的東西 失蹤?預先感謝您

+0

您聲明PHP是x64,但是您的Oracle安裝是什麼? '比特'需要匹配。 – timclutton

回答

3

幾個月後,我找到了解決方案。請看下面的基礎設施:

  • 的Windows Server 2012 R2標準版64位
  • 的Apache/2.4.18(Win64的)VC11
  • PHP 5.6.19 86 VC11 TS

採取密切關注的時候下載Oracle即時客戶端:

  • 無論您的服務器是x64還是x86架構,都必須將其下載爲32位
  • 正如你注意到的,PHP是在VC11中編譯的,所以你需要必須下載帶有VC11資源的OIC,這可以確認解壓下載的文件並檢查文件夾vc11是否存在。

這兩個細節都非常重要。一旦我符合這兩個要求,錯誤已經消失我現在可以通過PHP成功連接到Oracle

+0

得到了類似的問題,但即使在遵循解決方案之後,仍然收到相同的錯誤消息。不過,我在Windows 10上。 – cytsunny

相關問題