2011-02-04 3 views
3

그래, IIS 6.0에서 PHP 5.2.17로 SQL Server 2005를 설정하는 데 문제가 있습니다.SQL Server PHP IIS

나는 모든 드라이버와 네이티브 클라이언트를 지시대로 설치했으며 phpinfo() 출력에는 sqlsrv와 이에 대한 적절한 설정이 들어 있습니다.

하지만,이 명령을 사용하여 연결을 시도 :

sqlsrv_connect("address,port", array("UID"=>"un", "PWD"=>"pw", "Database"=>"db")); 

나는 다음과 같은 오류 출력을 얻을 :

Array 
(
    [0] => Array 
     (
      [0] => IMSSP 
      [SQLSTATE] => IMSSP 
      [1] => -49 
      [code] => -49 
      [2] => This extension requires either the Microsoft SQL Server 2008 
Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Client O 
DBC Driver to communicate with SQL Server. Neither of those ODBC Drivers are cu 
rrently installed. Access the following URL to download the Microsoft SQL Server 
2008 R2 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?Link 
Id=163712 
      [message] => This extension requires either the Microsoft SQL Server 
2008 Native Client (SP1 or later) or the Microsoft SQL Server 2008 R2 Native Cl 
ient ODBC Driver to communicate with SQL Server. Neither of those ODBC Drivers 
are currently installed. Access the following URL to download the Microsoft SQL 
Server 2008 R2 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink 
/?LinkId=163712 
     ) 

    [1] => Array 
     (
      [0] => IM002 
      [SQLSTATE] => IM002 
      [1] => 0 
      [code] => 0 
      [2] => [Microsoft][ODBC Driver Manager] Data source name not found a 
nd no default driver specified 
      [message] => [Microsoft][ODBC Driver Manager] Data source name not f 
ound and no default driver specified 
     ) 

) 

sqlncli.dll는 창/system32 폴더 및 php_sqlsrv_52_ts_vc6에서입니다. dll은 php 확장 폴더에 있고 php.ini에서로드하도록 설정됩니다.

phpinfo에서 확장 프로그램이로드되고 ODBC 드라이버 관리자 오류가 발생하는 이유가 확실하지 않은 경우 확장 프로그램이 필요한 이유가 확실하지 않습니다.

어떤 통찰력이라도 대단히 감사하겠습니다.

========================================

업데이트/편집 : 나는 연결을 사용하여 다음 시도하고 잘 작동 :

odbc_connect("Driver={SQL Native Client};Server=servername;Database=db", "un", "pw"); 

내가 제대로 작동 sqlsrv_connect을 방지 할 수 php.ini 파일에서 누락 될 수있는 설정이 있나요?

답변

0

혼합 모드 인증을 사용하도록 SQL Server를 구성하지 않았을 수 있습니다. Enterprise Manager 또는 Management Studio에서 서버 속성> 보안으로 이동하여 SQL Server 및 Windows 인증 모드를 모두 사용하도록 설정합니다.

+0

이 참으로 일반적인 문제입니다. – zanlok

+0

혼합 모드가 활성화되어 있고 관리 도구에서 데이터 소스를 두 번 확인했으며 SQL Server와 SQL 기본 클라이언트가 모두 있습니다. – Wolftousen

0

당신이 내가 이번 주에 가진 것과 같은 문제가있는 것 같다.

나를 위해 sqlncli.dll에 대한 경로가 저장되는 레지스트리에서 사용 권한 문제로 밝혀졌습니다.

은 내가 프로세스 W3wp.exe를이

HKLM \ SOFTWARE \ ODBC \ 키이 레지스트리에 액세스가 거부를 얻고 있었다 보았다

http://www.iislogs.com/articles/processmonitorw3wp/

그런 다음이 게시물의 지시에 프로세스 모니터를 다운로드하고 다음 ODBCINST.INI \ SQL 네이티브 클라이언트 10.0

RegEdit를 열고 해당 키로 이동했습니다.

권한을 마우스 오른쪽 단추로 클릭하고 네트워크 서비스를 목록에 추가하고 읽기 권한을 부여했습니다.

앱 풀을 재활용했으며 현재 작동 중입니다.

희망이 있습니다.

건배, Fede

관련 문제