윈도우 10 또는 Window Server 2012 R2 서버 OS 환경에
PHP 7.2 + SQL SERVER 연결 드라이브 설정하기 방법을 정리해 둡니다.
기본적으로 IIS에 Web Platform Installer가 설치되어 있어야 합니다. (설치가 안돼 있다면, 아래 포스트 참조)
IIS에 Web Platform설치법 |
2017/10/14 - [Server관련/Sever(OS)] - Windows Server 2012 R2 IIS에 PHP 설치 및 MSSQL연결 +(WebKnight/AWStats링크만) |
Web Platform Installer가 설치되어 있다면, 아래와 설치를 진행하시면 됩니다.
![](https://blog.kakaocdn.net/dn/KFXx5/btrsnJRDd0n/NCwKwjiP0xKrYpa0oJEop0/img.jpg)
PHP 7.2 + SQL Drive 설치
1) PHP 7.2 항목을 선택
Web Platform Installer에서 'PHP'를 검색해서,
- Microsoft Drivers 5.3 (x64) for PHP v7.2 for SQL Server in IIS
- Windows Cache Extension 2.0 (x64) for PHP 7.2
(해당 항목에 연관된 PHP 7.27등 자동 설치)
2) Install를 누르면 설치될 항목을 보여준다.
Windows Cache Extension 2.0 (x64) for PHP 7.2를 선택하면,
연계된 PHP7.2.2(x64)와 PHP Manager for IIS를 설치한다고 메시지가 나옵니다.
3) Prerequisites항목 설치
사전에 설치되어야 하는 부분들에 대한 항목들을 보여줍니다.
4) PHP Manager for IIS 오류
PHP Manager for IIS은 설치가 되지 않지만, 사용에는 큰 문제는 없습니다.
설치 완료!! (IIS host 설정은 생략)
PHP 에러 보기 설정
PHP 개발에서 에러가 날 때, 해당 내용에 대해서 확인이 필요합니다.
기본적으로 IIS에서 PHP에러를 표시하지 않고, 에러 번호(500번 등)로만 나타난다.
Live 운영 서버에서 에러를 보지 못하게 하는 것은 좋은 설정이지만,
개발 당시에 에러를 보지 못한다는 것은 너무도 참혹(?)한 설정입니다.
PHP의 에러를 보기 위해 다음과 같은 설정을 변경하시면 됩니다.
먼저, php.ini의 설정 위치를 찾기 위해서
<?php phpinif(); ?> 소스 페이지를 만들어서,
설정 파일(php.ini) 위치 Path을 확인해 볼 수 있습니다.
1) PHP의 php.ini위치 값 확인
phpinfo() 함수로 보여주는 PHP의 모든 설정 정보로 필요한 정보를 얻을 수 있습니다.
2) PHP 에러를 보여주는 부분의 설정을 활성화
C:\Program Files\PHP\v7.2\php.ini의 display_errors = On로 변경로 변경 후 주석 제거
3) Site 호스트의 설정
IIS 호스트를 선택 후에, Configurat Editor를 선택해 줍니다.
4) 오류에 대한 항목 설정
세션 항목 중에 httpErrors항목을 선택합니다.
5) 상세 오류 정보를 보여주기 설정
httpErrors세션의 errorMode를 Detailed로 변경합니다.
다음과 같이 설정하면, PHP의 에러 메시지를 확인할 수 있습니다.
만약, PHP실행 URL을 서버 로컬 브라우저로 확인이 가능하시다면,
보안을 위해서, ERROR를 서버에서 확인할 수 있는 DetailedLocalOnly를 추천드립니다.
SQL 사용 시 한글 문제 (깨짐, 검색 안됨 등)
PHP에서 SQL 서버를 사용하다 보면, 한글 검색이 안되거나, 한글이 깨져서 보이는 현상이 있습니다.
예) SELECT TOP 10 keyword FROM tablename WHERE keyword like '%한글%'
해당 '한글 키워드' 검색 시, 쿼리의 결과를 가져오지 못합니다.
이를 해결하기 위해서는 PHP의 DB 연결 함수인 sqlsrv_conenct($serverName, $connectionInf)의
$connectionInfo의 정보 값에 문자셋의 정보를 UTF-8을 전달해 줘야 합니다.
=> 'CharacterSet'=>'UTF-8'가 추가되어야 합니다.
./classes/db/DBMssql.class.php |
$result = @sqlsrv_connect( $connection [ "db_hostname" ], array ( 'Database' => $connection [ "db_database" ], 'UID' => $connection [ "db_userid" ], 'PWD' => $connection [ "db_password" ], 'CharacterSet' => 'UTF-8' )); |
sqlsrv_connect 라이브러리: http://php.net/manual/en/function.sqlsrv-connect.php
resource sqlsrv_connect ( string $serverName [, array $connectionInfo ] ) |
<?php $connectionInfo = [ 'CharacterSet' => 'UTF-8', ]; $conn = sqlsrv_connect($serverName, $connectionInfo); ?> Beware though that only two options exist: - SQLSRV_ENC_CHAR (constant) for ANSI, which is the default - 'UTF-8' (string) for Unicode |
'Server관련 > Sever(OS)' 카테고리의 다른 글
리눅스 서버 60초안에 상황파악하기 (0) | 2019.09.26 |
---|---|
/var/mail/.test.pop lock busy!에러, 아웃룩 서버 제한 시간 설정 (0) | 2019.06.14 |
Task Scheduler 이름 변경하기 (0) | 2019.03.23 |
윈도우 용량이 커져갈때, Windows/Installer 패치 파일 삭제하기 (2) | 2018.12.26 |
Windos 10 Home Edition 원격 데스크톱 사용하기 (0) | 2018.10.10 |
Tomcat 8 JVM Heap 메모리 늘리기 + Windows Service 등록하기 (0) | 2018.08.07 |
Disk Management 로 C 드라이브와 D 드라이브 합치기 (0) | 2018.07.27 |
[Email]이메일 서버 상태 확인 + Yahoo로 메일 보내기 막힘 처리.+Trend Micro Email Reputation (2) | 2018.06.13 |
(로그인하지 않으셔도 가능)