PHP / SQL Server / Ubuntu 18.04에서 연결하는 방법

PHP에서 SQL Server에 연결하는 방법입니다. 서버 OS는 Ubuntu 18.04이고 Apache, PHP는 설치되어 있는 상태에서 시작합니다.

아래의 내용은 꼭 필요한 것만 모은 요약이며, 자세한 내용은 Microsoft 홈페이지에서 보실 수 있습니다.

소프트웨어 설치

다음의 명령을 차례대로 실행하여 필요한 소프트웨어를 설치합니다.

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql17
apt-get install unixodbc-dev
apt install php-pear php-dev
pecl install sqlsrv
pecl install pdo_sqlsrv

PHP 설정 파일 수정

php.ini에 다음 코드를 추가합니다. 만약 PHP 7.2 버전이라면 /etc/php/7.2/apache2 디렉토리에 있습니다.

extension=sqlsrv.so
extension=pdo_sqlsrv.so

웹서버 재시작

다음과 같이 명령하여 아파치 웹서버를 재시작합니다.

service apache2 restart

테스트

다음의 내용으로 PHP 파일을 만듭니다. yourServername, yourDatabase, yourUsername, yourPassword는 SQL Server의 정보로 변경합니다.

<?php
$serverName = "yourServername";
$connectionOptions = array(
    "database" => "yourDatabase",
    "uid" => "yourUsername",
    "pwd" => "yourPassword"
);

// Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn === false) {
    die(formatErrors(sqlsrv_errors()));
}

// Select Query
$tsql = "SELECT @@Version AS SQL_VERSION";

// Executes the query
$stmt = sqlsrv_query($conn, $tsql);

// Error handling
if ($stmt === false) {
    die(formatErrors(sqlsrv_errors()));
}
?>

<h1> Results : </h1>

<?php
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    echo $row['SQL_VERSION'] . PHP_EOL;
}

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);

function formatErrors($errors)
{
    // Display errors
    echo "Error information: <br/>";
    foreach ($errors as $error) {
        echo "SQLSTATE: ". $error['SQLSTATE'] . "<br/>";
        echo "Code: ". $error['code'] . "<br/>";
        echo "Message: ". $error['message'] . "<br/>";
    }
}
?>

웹브라우저로 접속했을 때 다음과 같은 화면이 나오면 정상적으로 연결된 것입니다.

PHP 강좌