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 |