안녕하세요. 개발자 여러분!
php로 새로운 프로젝트를 해야 할 일이 생겨
새로 공부하는 마음으로 아파치와 php를 개발 pc에 설치 및 설정하고
mssql server와 db 연동을 하려고 했더니.. ㅠㅠ
db 접속이 안되는거에요~
db접속을 위한 php 소스코드는 아래처럼 했구요.(dbtest.php)
<?php
date_default_timezone_set('Asia/Seoul');
$serverName = "localhost\SQLEXPRESS";
$connectionOptions = array(
"database" => "mydbname", // 데이터베이스명
"uid" => "mydbid", // 유저 아이디
"pwd" => "mydbpass" // 유저 비번
);
// DB커넥션 연결
$connect = sqlsrv_connect($serverName, $connectionOptions);
if($connect ===false){
echo "연결실패";
}else{
echo "연결성공";
}
php에서 mssql 서버와 연동을 위해서는 php.ini 에 extension을 추가해야 한다고 해요.
아래처럼 말이죠
extension = php_pdo_sqlsrv_74_nts_x64.dll
extension = php_pdo_sqlsrv_74_ts_x64.dll
extension = php_sqlsrv_74_nts_x64.dll
extension = php_sqlsrv_74_ts_x64.dll
참고로 제 경우 php 버전은 7.4 이기 때문에 위와 같이 dll 파일명에 74 로 적혀있는 거랍니다.
php 버전이 8.0 이라면 파일명 숫자를 80으로 바꿔주세요.
아.. 그럼 저 위 dll파일은 어디에 있어야 하냐면,,
php 가 설치된 폴더의 ext 폴더에 있어야 합니다.
제 경우에는 아래 이미지처럼 되어 있구요.
dll 파일은 본문 맨 아래에 첨부해 드릴게요.
이렇게 하고 아파치 재시작 후 다시 dbtest.php를 열었는데..
그래도 에러가 나네요. 이거야 원 참..
삽질 끝에 원인을 찾았으니..
php.ini 파일이 제대로 로드되지 않았던 겁니다.
php.ini가 로드되지 않았으니 extension을 넣어줘도 무용지물이었던 거죠.
먼저 php가 로드되었는지 확인하는 방법은
phpinfo() 를 실행하면 알 수 있는데요.
아래 그림과 같이 나오죠.
위의 빨간 부분처럼 나와야 정상이구요.
이 부분이 "no value" 로 나오면 ini 파일이 로드되지 않은 겁니다.
그럼 여기가 no value라면 어떻게 할까요?
아파치 설치하실 때 conf/httpd.conf 파일 수정하셨었죠?
이 파일의 마지막에 아래와 같이
PHPIniDir "e:/php7"
요게 없어서 그랬더라구요. ㅎㅎ
PHPIniDir "e:/php7"
LoadModule php7_module "e:/php7/php7apache2_4.dll"
AddType application/x-httpd-php .html .php
AddHandler application/x-httpd-php .php
요렇게 추가하고 아파치 재시작하니까 db연결 성공~
아래에 extension 파일 첨부해 드려요~
자동차보험료가 왜 올랐을까? 궁금하면 자동차보험료 할인할증요인 조회시스템으로 확인하자 (0) | 2022.06.27 |
---|---|
윈도우 작업스케줄러를 이용하여 특정 서비스를 자동으로 재시작하기 (0) | 2022.03.18 |
갤럭시 폰 화면 한 손 조작 모드 (1) | 2021.12.02 |
[크롬] 웹사이트에서 마우스 우클릭 안될 때 개발자도구 F12로 우클릭 금지 해제하는 방법 (0) | 2021.11.30 |
오타문자 수정 시 커서이동 간편하게 하기 (0) | 2021.11.30 |
댓글 영역