본문 바로가기

OS/Linux

Centos7 apache 2.4, apr설정, php 7.4.33, sqlsrv 설치 및 연동 (3)

3. mssql 2019 설치


3-1) 레포 등록

curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo


3-2) mssql 설치

yum install -y mssql-server


3-3) 설정

/opt/mssql/bin/mssql-conf setup


3-4) 실행 확인

systemctl status mssql-server

 


4. odbc 설치

# 레포 등록
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo

# 설치
yum install unixODBC-devel
yum install mssql-tools

# 환경설정
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc


5. sqlsrv 설치

5-1) sqlsrv

wget https://pecl.php.net/get/sqlsrv-5.8.0.tgz
tar xvf sqlsrv-5.8.0.tgz 
cd sqlsrv-5.8.0
/usr/local/php/bin/phpize 
./configure --with-php-config=/usr/local/php/bin/php-config 
make && make install


5-2) pdo_sqlsrv

wget https://pecl.php.net/get/pdo_sqlsrv-5.8.0.tgz
ar xvf pdo_sqlsrv-5.8.0.tgz 
cd pdo_sqlsrv-5.8.0
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config 
make && make install


5-3) php.ini 설정

vi /usr/local/apache/conf/php.ini
추가하기
extension = sqlsrv.so
extension=pdo_sqlsrv.so


5-4) apahce 재시작

systemctl restart apachectl


5-5) phpinfo를 사용하여 설정 확인

phpinfo, pdo와 pdo_sqlsrv 항목으로 설치 확인

 

mssql 데이터 베이스 생성

sqlcmd -U sa -P 'password'

1>CREATE DATABASE test_db
2>go



6. 연동확인

# 테스트 페이지 파일 생성
vi /usr/local/apache/htdocs/<idex파일이름>

=============================================
<?php
// 데이터베이스 연결 정보
$serverName = "localhost,1433"; // 서버 주소, 포트
$connectionOptions = array(
    "Database" => "test_db", // 데이터베이스 이름
    "Uid" => "sa", // 사용자 이름
    "PWD" => "PASSWORD" // 비밀번호
);

// 연결 시도
$conn = sqlsrv_connect($serverName, $connectionOptions);

if($conn) {
    echo "Connection established.\n";
} else {
    echo "Connection could not be established.\n";
    die(print_r(sqlsrv_errors(), true));
}

// 간단한 쿼리 실행
$sql = "SELECT GETDATE()"; // 현재 날짜와 시간을 가져오는 쿼리
$stmt = sqlsrv_query($conn, $sql);
if($stmt === false) {
    die(print_r(sqlsrv_errors(), true));
}

// 결과 출력
if(sqlsrv_fetch($stmt)) {
    $date = sqlsrv_get_field($stmt, 0); // $date는 DateTime 객체입니다.
    // DateTime 객체를 "Y-m-d H:i:s" 형식의 문자열로 변환하여 출력합니다.
    echo "The current date and time is: " . $date->format("Y-m-d H:i:s");
}

// 연결 종료
sqlsrv_close($conn);
?>
=============================================


접속화면

연동 성공
연동 실패/database 연결 실패

 

연동실패/계정 로그인 실패
연동실패/잘못된 ip입력



이상으로 php-mssql 연동도 마무리하겠습니다!