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 / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

PHP / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

GET과 POST HTML의 form을 이용하여 값을 전송하는 방식은 get과 post 두 가지가 있습니다. PHP로 그 값을 받아서 사용하는 방법을 알아봅니다. GET 방식으로 전송한 경우 다음은 GET 방식으로 값을 전송하는 간단한 예제입니다. form.php <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>HTML</title> <style> * { ...

PHP / MariaDB / 데이터베이스에 데이터 입력하기

PHP / MariaDB / 데이터베이스에 데이터 입력하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기) 폼(Form) 만들기 - employees_add.php 데이터를 입력할 폼을 만듭니다.(number, date 타입과 required는 HTML5부터 지원합니다.) 값은 employees_insert.php로 전송됩니다. <form action="employees_insert.php" method="POST"> <p><input type="number" name="emp_no" placeholder="NO" required></p> <p><input type="date" name="birth_date" required></p> <p><input type="text" name="first_name" placeholder="First Name" required></p> <p><input type="text" name="last_name" placeholder="Last Name" required></p> <p><select name="gender" ...

PHP / 변수 / 유동 변수(변수 안에 변수) 만드는 방법

PHP / 변수 / 유동 변수(변수 안에 변수) 만드는 방법

변수를 일정 규칙에 따라 자동으로 만들어야 할 때가 있다. 이런 변수를 유동 변수라고 하는 거 같은데, 공식 용어인지는 잘 모르겠다. 유동 변수를 만들려고 하면 변수 이름을 만들 때 변수를 넣어야 한다. 예를 들어 변수 이름에 $var라는 이름을 넣고 싶다면 다음과 같이 한다. ${$var} 아래는 변수 이름에 일련 번호를 붙이는 예제이다. 배열의 값을 일련 ...

PHP / Session / 세션 값 출력하는 방법

PHP / Session / 세션 값 출력하는 방법

세션(Session)에 값을 저장했을 때, 그 값을 출력하는 방법을 간단한 예제로 알아보겠습니다. 세션을 초기화합니다. 이때 id가 하나 발급됩니다. session_start(); 세션의 no에 123을, username에 abc를 저장합니다. $_SESSION = 123; $_SESSION = 'abc'; 세션의 id를 출력합니다. echo session_id(); 세션의 no의 값을 출력합니다. echo $_SESSION; 세선의 username의 값을 출력합니다. echo $_SESSION; 세션의 모든 값을 출력합니다. var_dump( $_SESSION ); 다음은 전체 ...

PHP / 다른 페이지로 리디렉션(Redirection)하는 방법

PHP / 다른 페이지로 리디렉션(Redirection)하는 방법

여러 가지 이유로 a.php로 접속했을 때 b.php로 자동 이동하게 만들어야 할 경우가 있습니다. 이를 보통 리디렉션(Redirection)이라고 하는데, PHP에서는 다음과 같은 코드로 리디렉션을 구현할 수 있습니다. 다음과 같은 코드가 있는 페이지에 접속하면 https://www.codingfactory.net로 이동합니다. header( 'Location: https://www.codingfactory.net' ); 일정 시간 지난 후에 이동시키고 싶다면 sleep() 함수를 이용하세요. 다음은 5초 후 이동시키는 코드입니다. sleep( 5 ); header( ...

PHP / 조건문 / if, elseif, else

PHP / 조건문 / if, elseif, else

if 설명 if로 조건을 만족할 때 실행할 작업을 정한다. 문법 if ( condition ) { statement; } condition이 TRUE이면 statement을 실행하고, FALSE이면 실행하지 않는다. 중괄호 대신 콜론과 endif를 이용할 수도 있다. if ( condition ): statement; endif; 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>Coding Factory</title> <style> ...

PHP / 메모

PHP / 메모

HTML 확장자에서도 PHP 코드 실행시키는 방법 PHP는 보통 확장자가 php인 파일에서 실행됩니다. 하지만 설정을 추가하여 다른 확장자 파일에서도 php가 실행되도록 할 수 있습니다. 만약 아파치 웹서버에서, 확장자가 html인 파일에서도 php가 실행되도록 하려면, 설정 파일에 다음 코드를 추가합니다. AddType application/x-httpd-php .html

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

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 / 함수 / password_hash() / 비밀번호 암호화하는 함수

PHP / 함수 / password_hash() / 비밀번호 암호화하는 함수

개요 password_hash()는 비밀번호를 암호화해주는 함수입니다. 입력한 값이 암호화된 비밀번호와 맞는지 확인하는 것은 password_verify() 함수로 합니다. 문법 password_hash ( string $password , int $algo ) $password 암호화할 문자열입니다. $algo 암호화 알고리즘을 정합니다. PASSWORD_DEFAULT : bcrypt 알고리즘을 사용합니다. PASSWORD_BCRYPT : CRYPT_BLOWFISH 알고리즘을 사용합니다. PASSWORD_ARGON2I : Argon2i hashing 알고리즘을 사용합니다. PHP를 Argon2를 사용할 수 있도록 설치한 경우에 사용 가능합니다. PASSWORD_ARGON2ID ...

PHP / 당월 초일, 당월 말일 구하는 방법

PHP / 당월 초일, 당월 말일 구하는 방법

당월 초일과 당월 말일은 date() 함수를 이용하여 구할 수 있다. 초일은 항상 1일이므로, 아래처럼 날짜에 01을 넣어서 구한다. date( 'Y-m-01' ) 말일은 날짜 자리에 t를 넣어서 구한다. date( 'Y-m-t' ) 다음은 당월 초일과 말일을 출력하는 간단한 예이다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>HTML</title> <style> ...