PHP 5.3 이상 환경에서 MSSQL 연동 드라이버 변경 및 설정 방법
페이지 정보

본문
PHP 5.3 이상 환경에서 MSSQL 연동 드라이버 변경 및 설정 방법
PHP 5.3 이상 버전에서 지원이 중단된 phpmssql.dll 대신 Microsoft SQL Server Driver(phpsqlsrv.dll)를 다운로드하여 적용하고 php.ini 및 웹서버를 설정하는 방법을 안내합니다.
PHP 5.3 이상 MSSQL 연동 드라이버 변경 안내
PHP 5.3 버전부터는 기존에 사용하던 php_mssql.dll 드라이버의 지원이 중단되었습니다. 따라서 PHP 5.3 이상 환경에서 MSSQL 데이터베이스를 연동하려면 마이크로소프트(Microsoft Drivers for PHP for SQL Server)에서 제공하는 php_sqlsrv.dll 및 php_pdo_sqlsrv.dll 드라이버를 사용해야 합니다.
1. 확인 및 사전 조치 위치
- php.ini 백업: 설정을 변경하기 전 현재 작동 중인
php.ini파일을 먼저 백업합니다. - PHP 확장 디렉터리 확인: 드라이버 파일을 둘 경로인 PHP 확장 디렉터리 위치를 확인합니다.
2. 드라이버 설정 항목 및 방법
- 사용할 PHP 버전, 아키텍처(32비트/64비트), 스레드 안전(TS/NTS) 여부에 맞는
php_sqlsrv.dll및php_pdo_sqlsrv.dll파일을 PHP 확장 디렉터리에 넣습니다. - PHP 구성 파일인
php.ini의 extension 섹션에 다음과 같이 드라이버 로드 설정을 추가합니다.
(※ 위 파일명 예시는 PHP 5.3 비스레드 안전(NTS) 환경 기준이며, 사용하는 PHP 구동 환경의 버전에 맞는 파일명을 기재해야 합니다.)extension=php_sqlsrv_53_nts_vc9.dll extension=php_pdo_sqlsrv_53_nts_vc9.dll - 설정을 마친 후 웹 서버를 재시작합니다.
3. 다음 행동 및 예외 사항
- 연동 실패 시: 웹 서버 재시작 후에도 연결이 되지 않는다면
phpinfo()화면을 통해sqlsrv및pdo_sqlsrv모듈이 정상적으로 로드되었는지 확인합니다. - 함수 변경 주의: 드라이버가 변경됨에 따라 기존
mssql_connect등의 프로시저 함수 대신sqlsrv_connect등의 새로운 API 규격으로 연동 코드를 수정해야 할 수 있습니다.
php.ini 파일에서 sqlsrv 드라이버 설정 및 활성화 절차
PHP 환경에서 MSSQL 연동 드라이버(php_sqlsrv.dll)를 활성화하기 위해서는 드라이버 파일을 확장 디렉터리에 배치한 후 설정 파일을 수정해야 합니다. 설정 전 반드시 php.ini 파일을 백업해 두어야 합니다.
1. 드라이버 파일 배치
- 사용 중인 PHP 버전, 아키텍처(32/64bit), 스레드 안전(TS/NTS) 여부를 확인합니다.
phpinfo()의 'Thread Safety' 항목이 'enabled'이면 TS, 'disabled'이면 NTS입니다. - 환경에 맞는
php_sqlsrv.dll및php_pdo_sqlsrv.dll파일을 준비하여 PHP 확장 디렉터리(php.ini의extension_dir경로)에 복사합니다.
2. php.ini 설정 변경
php.ini파일을 열고extension_dir항목의 경로가 올바르게 지정되어 있는지 확인합니다.- 설정 파일의 extension 섹션에 사용하는 PHP 버전과 환경에 맞는 드라이버 라인을 추가합니다.
extension_dir = "C:\xampp\php\ext"
extension=php_sqlsrv.dll
extension=php_pdo_sqlsrv.dll
3. 웹서버 재시작
- 설정 변경을 완료한 후 Apache 또는 IIS 등의 웹서버를 재시작하여 변경된 설정이 적용되도록 합니다.
드라이버 설정 후 sqlsrv 모듈이 정상적으로 로드되었는지 확인하려면 phpinfo() 함수를 사용합니다.
확인 절차
- 웹 서버의 루트 디렉터리(또는 접근 가능한 경로)에
phpinfo()함수를 포함한 PHP 파일을 생성합니다.<?php phpinfo(); ?> - 웹 브라우저를 통해 해당 파일에 접속합니다.
- 페이지 내에서
sqlsrv항목을 검색합니다. sqlsrv섹션이 나타나고 드라이버 정보가 표시된다면 모듈이 정상적으로 로드된 것입니다.
주의사항
- 만약
sqlsrv항목이 보이지 않는다면php.ini파일이 올바르게 로드되었는지, 설정한extension경로와 파일명이 정확한지 다시 확인해야 합니다. - 명령줄 환경(CLI)에서 확인하려면 터미널에서
php -m명령어를 실행하여 목록에sqlsrv및pdo_sqlsrv가 포함되어 있는지 확인할 수 있습니다.
상황별 판단 가이드
- 내 상황: PHP 5.3 이상 환경에서 기존
php_mssql.dll드라이버 사용 불가 및 MSSQL 연동 필요 - 선택 기준: 사용 중인 PHP 버전, 아키텍처(32/64bit), 스레드 안전(TS/NTS) 여부를 확인하여 적합한 드라이버 파일 선택(phpinfo()에서 Thread Safety 항목 확인)
- 다음 행동:
php.ini백업 → 확장 디렉터리에 드라이버 파일 배치 →php.ini에extension설정 추가 → 웹 서버 재시작 →phpinfo()로 모듈 로드 확인
실전 FAQ
- Q. 설정 후에도 모듈이 로드되지 않는다면?
phpinfo()에서Loaded Configuration File항목이 올바른php.ini경로를 가리키는지 확인하세요. 'no value'로 표시되면 설정 파일 자체가 로드되지 않은 상태입니다.
- Q. TS(Thread Safe)와 NTS(Non-Thread Safe)는 어떻게 구분하나요?
phpinfo()의Thread Safety항목을 확인하세요. 'enabled'이면 TS, 'disabled'이면 NTS입니다. 웹 서버 환경(IIS는 보통 TS, Apache는 NTS)에 따라 드라이버 파일명도 달라지므로 반드시 일치시켜야 합니다.
- Q. 기존 연동 코드 수정이 필요한가요?
- 네,
mssql_로 시작하는 구버전 함수는 더 이상 작동하지 않습니다.sqlsrv_connect등 새로운 API 규격으로 코드를 변경해야 합니다.
- 네,
함께 보면 좋은 글
참고자료
기타 참고자료
- whiterussian.tistory.com — 화이트 러시안 :: windows apm 환경에 sqlsrv 구성 추가하기
- happyjung.com — PHP 5.3x mssql연동 ( php_mssql.dll ) > 기술자료 | 해피정닷컴
- learn.microsoft.com — 1단계: PHP에 대한 환경 구성 - PHP drivers for SQL Server | Microsoft Learn
- m.blog.naver.com — php 5.3 + mssql (windows) : 네이버 블로그
- sir.kr — 아파치, PHP에서 MSSQL 리용할때 - SIR - 개발자 커뮤니티
- learn.microsoft.com — PHP용 Microsoft 드라이버 불러오기 - PHP drivers for SQL Server | Microsoft Learn
- m.blog.naver.com — php mssql 연동과 php.ini no value 해결 : 네이버 블로그
- 이전글PHP 타임스탬프와 날짜 형식 사용법 26.09.28
- 다음글PHP MSSQL 및 SQLSRV 함수 대응 관계 비교 26.09.27
댓글목록
등록된 댓글이 없습니다.