2016-08-01 21 views
1

이 항목은 여러 번 요청되었지만 모든 솔루션이 내 컴퓨터에서 작동하지 않습니다.php_oci8_11g.dll은 유효한 Win32 응용 프로그램이 아닙니다.

Windows 7을 10G oracle dabatase와 연결하려고했지만 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 
  • 64X 아키텍처
  • 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 
,536,913,632 10

문제 해결

  • 나는 oci8 2.0.11을 사용하고 있습니다. 접힌 ext/에서 그들을 삭제했습니다. extesions의 나머지는 꽤 잘로드됩니다.
  • PATH 변수는
  • 그냥 필요한 오라클 DLL 파일을 최대 보았다 ORACLE_HOME과 PHP 경로를 포함하고 그들은 거기 :

    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 
    
  • 오라클 클라이언트는 내 옆에 필요하지 않습니다 때문에 데이터베이스가 동일한 컴퓨터에 설치되고 필요한 모든 라이브러리가 설치됩니다.

없습니까? 사전에 감사합니다

+0

PHP는 x64이지만 상태는 Oracle입니까? '비트'는 일치해야합니다. – timclutton

답변

3

몇 달 후 해결책을 찾았습니다.

  • 윈도우 서버 2012 R2 표준 버전 64
  • 아파치/2.4.18 (Win64를) VC11
  • PHP 5.6.19 86 VC11 TS

주의 경우를 보자 다음과 같은 인프라를 고려 Oracle Instant Client를 다운로드하십시오.

  • 서버가 x64 또는 x86 arquitecture이든 상관없이, 32 비트
  • 참고로 PHP는 VC11에서 컴파일되므로 이어야 VC11 소스로 OIC를 다운로드해야합니다. 다운로드 한 파일의 압축을 풀고 vc11 폴더가 있는지 확인할 수 있습니다.

두 세부 사항 모두 매우 중요합니다.두 가지 요구 사항을 모두 충족하면 오류가 발생합니다. 이제 PHP를 통해 Oracle에 연결할 수 있습니다.

+0

비슷한 문제가 있지만 해결책을 찾은 후에도 여전히 동일한 오류 메시지가 표시됩니다. 그래도 Windows 10을 사용하고 있습니다. – cytsunny

관련 문제