PHP

xampp+php+mssql

먹세 2015. 9. 23. 19:26

xampp 환경에서 php와 sql server(mssql) 연결 방법


1. xampp 설치 (32bit 로 설치 하는것이 정신건강에 좋음.. wamp 64bit 에서 mssql 모듈이 안올라와서 xampp로 다시 설치함..)


2. xampp 설치 후 php 버전 확인 (xampp 버전마다 php 버전이 다르게 설치됨)

httpd.conf 파일을 열어서 

<Directory />

    Options FollowSymLinks

    AllowOverride all

    Order deny,allow

#    Require all denied

</Directory>

로 변경해준다.


혹시나 80포트 사용중이라고 나오면서 apache 시작이 안될 경우.

cmd -> netstat -ano | findstr :80

이라고 쳐보면 

TCP   0.0.0.0:80   0.0.0.0:0   LISTENING   4

TCP   [::]:80      [::]:0      LISTENING   4

형태로 나올것이다.


80포트를 사용중인 유력한 프로세스는 

1. IIS

2. SQL Server Reporting Services

이런 순으로 확인 해보면 된다.


IIS문제일 경우에는 IIS 관리자에서 서비스를 정지 시키면 되고,

SQL Server Reporting Services 가 문제일 경우에는 관리도구->서비스에서 SQL Server Reporting Services 항목을 찾아서 사용안함 으로 설정하면 된다.



3. 아래 링크에서 해당 파일 다운로드

http://www.microsoft.com/en-us/download/details.aspx?id=20098

SQLSRV20.exe 다운로드 -> php 5.3 일때 

SQLSRV30.exe 다운로드 -> php 5.3 또는 5.4 일때 (예 : php_sqlsrv_53_ts.dll 은 5.3 버전, php_sqlsrv_54_ts.dll 은 5.4 버전)

SQLSRV31.exe 다운로드 -> php 5.4 또는 5.5 일때

SQLSRV32.exe 다운로드 -> php 5.4 또는 5.5 또는 5.6 일때

위 exe 파일들을 다운받아서 압축을 풀어보면 안에 들어있는 각 버전별 dll 파일들이 보임


4. 자신에게 맞는 버전의 dll 파일 2개를 복사

예) php 5.6 버전일때 

SQLSRV32.exe 를 받아서 압축을 풀고, php_pdo_sqlsrv_56_ts.dll 와 php_sqlsrv_56_ts.dll 를 복사 


5. 설치된 xampp/php/ext/ 폴더에 붙여넣기

예) D:\xampp\php\ext


6. xampp/php/php.ini 파일을 열어서 extension 수정 (모듈 확장)

;extension=php_mssql.dll -> extension=php_mssql.dll 로 수정 (앞에 ; 로 된 주석을 지워줌)

extension=php_pdo_sqlsrv_56_ts.dll 추가

extension=php_sqlsrv_56_ts.dll 추가


display_errors=On -> display_errors=Off Notice 등 에러표시 안하기

;default_charset = "UTF-8" -> default_charset = "UTF-8" 주석제거


그리고 타임존을 수정해준다. (안해주면 DB에 한국시간으로 안들어감)

date.timezone=Asia/Seoul


7. php.ini 저장 후 아파치 재시작


8. xampp/htdocs/index.php 에 아래 내용 삽입

<?php

phpinfo();

?>


9. 웹 브라우저에서 localhost 를 치고 확인


10. 아래처럼 pdo, sqlsrv, pdo_sqlsrv 세개가 있는지 Ctrl+F 로 검색


이 세개가 잘 나오면 성공, 하나라도 안나오면 3번 순서로 돌아가서 php버전부터 다시 확인.


11. index.php 에서 DB 접속을 시도

<?php

$serverName = "자신의PC이름\SQLEXPRESS"; //serverName\instanceName

$connectionInfo = array( "Database"=>"자신의 DB이름", "UID"=>"자신의 DB아이디", "PWD"=>"자신의 DB비번");

$conn = sqlsrv_connect( $serverName, $connectionInfo);


if( $conn ) {

     echo "Connection established.<br />";

}else{

     echo "Connection could not be established.<br />";

     die( print_r( sqlsrv_errors(), true));

}

?>


참고 : http://php.net/manual/en/function.sqlsrv-connect.php





반응형

'PHP' 카테고리의 다른 글

현재 생성되어있는 변수 확인하기  (0) 2017.02.21
ODBC Driver 11 for SQL Server  (0) 2015.10.08
php 한글 구분  (0) 2014.09.29
wamp 로컬에서 도메인연결 세팅  (0) 2014.08.21
snoopy class 사용법  (0) 2013.07.11