[php] 리눅스 (유닉스 ) 계열에서 php로 마이크로소프트 MS SQL 서버 접속 : Microsoft Drivers for PHP for SQL Server의 Linux 및 macOS 설치 자습서

Microsoft Drivers for PHP for SQL Server의 Linux 및 macOS 설치 자습서

다음 지침에서는 클린 환경을 가정하며 Ubuntu, Red Hat, Debian, SUSE, Alpine, macOS에 PHP 8.1, Microsoft ODBC 드라이버, Apache 웹 서버, Microsoft Drivers for PHP for SQL Server를 설치하는 방법을 보여줍니다. 이 지침에서는 PECL를 사용하여 드라이버를 설치하도록 권유하지만, Microsoft Drivers for PHP for SQL Server GitHub 프로젝트 페이지에서 미리 작성된 이진 파일을 다운로드하고 Microsoft Drivers for PHP for SQL Server 로드의 지침에 따라 설치할 수도 있습니다. 확장 로드 및 php.ini 확장을 추가하지 않는 이유에 대한 설명은 드라이버 로드에 대한 섹션을 참조하세요.

PHP 8.1 패키지를 사용할 수 있는 경우 다음 지침은 pecl install을 사용하여 기본적으로 PHP 8.1을 설치합니다. 먼저 pecl channel-update pecl.php.net을 실행해야 할 수도 있습니다. 일부 지원되는 Linux 배포판은 기본적으로 PHP 7.1 이하 버전으로 설정되는데 해당 버전은 SQL Server용 PHP 드라이버의 최신 버전에서 지원되지 않습니다. 대신 PHP 8.2 또는 8.3을 설치하려면 각 섹션의 시작 부분에 있는 노트를 확인하세요.

또한 Ubuntu에 PHP FastCGI Process Manager PHP-FPM을 설치하기 위한 지침도 포함되어 있습니다. PHP-FPM은 Apache 대신 nginx 웹 서버를 사용하는 경우에 필요합니다.

이 지침에는 SQLSRV 및 PDO_SQLSRV 드라이버를 모두 설치하는 명령이 포함되어 있지만, 드라이버는 독립적으로 설치하여 작동할 수 있습니다. 구성을 사용자 지정하는 데 익숙한 사용자는 이러한 지침을 SQLSRV 또는 PDO_SQLSRV에 맞게 조정할 수 있습니다. 두 드라이버는 아래에 명시된 경우를 제외하고 동일한 종속성을 가집니다.

지원되는 최신 운영 체제 버전은 지원 매트릭스를 참조하세요.

 참고

최적의 성능과 보안을 보장하기 위해 최신 ODBC 드라이버 버전을 설치했는지 확인합니다. 설치 지침은 Microsoft ODBC driver for SQL Server 설치(Linux) 또는 Microsoft ODBC driver for SQL Server 설치(macOS)를 참조하세요.

Ubuntu에 설치

 참고

PHP 8.2 또는 8.3을 설치하려면 다음 명령에서 8.1을 8.2 또는 8.3으로 바꿉니다.

1단계. PHP 설치(Ubuntu)

Bash
sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php8.1 php8.1-dev php8.1-xml -y --allow-unauthenticated

2단계. 필수 구성 요소 설치(Ubuntu)

Microsoft ODBC driver for SQL Server 설치(Linux)의 지침에 따라 Ubuntu용 ODBC 드라이버를 설치합니다. unixodbc-dev 패키지도 설치해야 합니다. pecl 명령에서 PHP 드라이버를 설치하는 데 사용됩니다.

Bash
sudo apt-get install unixodbc-dev

3단계 Microsoft SQL Server용 PHP 드라이버 설치(Ubuntu)

Bash
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv

시스템에 PHP 버전이 하나만 있는 경우 마지막 단계를 phpenmod sqlsrv pdo_sqlsrv로 단순화할 수 있습니다.

4단계 Apache 설치 및 드라이버 로드 구성(Ubuntu)

Bash
sudo su
apt-get install libapache2-mod-php8.1 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.1
exit

5단계 Apache 다시 시작 및 샘플 스크립트 테스트(Ubuntu)

Bash
sudo service apache2 restart

설치를 테스트하려면 이 문서의 마지막에 제공되는 설치 테스트를 참조하세요.

PHP-FPM을 사용하여 Ubuntu에 드라이버 설치

 참고

PHP 8.2 또는 8.3을 설치하려면 다음 명령에서 8.1을 8.2 또는 8.3으로 바꿉니다.

1단계. PHP 설치(PHP-FPM을 사용하는 Ubuntu)

Bash
sudo su
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install php8.1 php8.1-dev php8.1-fpm php8.1-xml -y --allow-unauthenticated

다음을 실행하여 PHP-FPM 서비스의 상태를 확인합니다.

Bash
systemctl status php8.1-fpm

2단계. 필수 구성 요소 설치(PHP-FPM을 사용하는 Ubuntu)

Microsoft ODBC driver for SQL Server 설치(Linux)의 지침에 따라 Ubuntu용 ODBC 드라이버를 설치합니다. unixodbc-dev 패키지도 설치해야 합니다. pecl 명령에서 PHP 드라이버를 설치하는 데 사용됩니다.

3단계 Microsoft SQL Server용 PHP 드라이버 설치(PHP-FPM을 사용하는 Ubuntu)

Bash
sudo pecl config-set php_ini /etc/php/8.1/fpm/php.ini
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv

시스템에 PHP 버전이 하나만 있는 경우 마지막 단계를 phpenmod sqlsrv pdo_sqlsrv로 단순화할 수 있습니다.

sqlsrv.ini 및 pdo_sqlsrv.ini가 /etc/php/8.1/fpm/conf.d/에 있는지 확인합니다.

Bash
ls /etc/php/8.1/fpm/conf.d/*sqlsrv.ini

PHP-FPM 서비스를 다시 시작합니다.

Bash
sudo systemctl restart php8.1-fpm

4단계 nginx 설치 및 구성(PHP-FPM을 사용하는 Ubuntu)

Bash
sudo apt-get update
sudo apt-get install nginx
sudo systemctl status nginx

nginx를 구성하려면 /etc/nginx/sites-available/default 파일을 편집해야 합니다. index.php(으)로 표시된 섹션 아래 목록에 # Add index.php to the list if you are using PHP를 추가합니다

config
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;

이제 # pass PHP scripts to FastCGI server 뒤에 오는 섹션에 대해 다음과 같이 주석 처리 제거 및 수정을 수행합니다.

config
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

5단계 nginx 다시 시작 및 샘플 스크립트 테스트(PHP-FPM을 사용하여 Ubuntu)

Bash
sudo systemctl restart nginx.service

설치를 테스트하려면 이 문서의 마지막에 제공되는 설치 테스트를 참조하세요.

Red Hat에 설치

1단계. PHP 설치(Red Hat)

Red Hat 7에 PHP를 설치하려면 다음 명령을 실행합니다.

 참고

PHP 8.2 또는 8.3을 설치하려면 다음 명령어에서 remi-php81을 각각 remi-php82 또는 remi-php83으로 바꿉니다.

Bash
sudo su
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
subscription-manager repos --enable=rhel-7-server-optional-rpms
yum install yum-utils
yum-config-manager --enable remi-php81
yum update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
yum install php php-pdo php-pear php-devel

Red Hat 8에 PHP를 설치하려면 다음 명령을 실행합니다.

 참고

PHP 8.2 또는 8.3을 설치하려면 다음 명령에서 remi-8.1을 각각 remi-8.2 또는 remi-8.3으로 바꿉니다.

Bash
sudo su
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install yum-utils
dnf module reset php
dnf module install php:remi-8.1
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
dnf update
# Note: The php-pdo package is required only for the PDO_SQLSRV driver
dnf install php-pdo php-pear php-devel

2단계. 필수 구성 요소 설치(Red Hat)

Microsoft ODBC driver for SQL Server 설치(Linux)의 지침에 따라 Red Hat 7 또는 8용 ODBC 드라이버를 설치합니다. unixodbc-dev 패키지도 설치해야 합니다. pecl 명령에서 PHP 드라이버를 설치하는 데 사용됩니다.

3단계 Microsoft SQL Server용 PHP 드라이버 설치(Red Hat)

Bash
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini
exit

또는 다음과 같이 Remi 리포지토리에서 설치할 수 있습니다.

Bash
sudo yum install php-sqlsrv

4단계 Apache 설치(Red Hat)

Bash
sudo yum install httpd

기본적으로 SELinux가 설치되고 적용 모드로 실행됩니다. SELinux를 통한 Apache의 데이터베이스 연결을 허용하려면 다음 명령을 실행합니다.

Bash
sudo setsebool -P httpd_can_network_connect_db 1

5단계 Apache 다시 시작 및 샘플 스크립트 테스트(Red Hat)

Bash
sudo apachectl restart

설치를 테스트하려면 이 문서의 마지막에 제공되는 설치 테스트를 참조하세요.

Debian에 설치

 참고

PHP 8.2 또는 8.3을 설치하려면 다음 명령에서 8.1을 8.2 또는 8.3으로 바꿉니다.

1단계. PHP 설치(Debian)

Bash
sudo su
apt-get install curl apt-transport-https
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update
apt-get install -y php8.1 php8.1-dev php8.1-xml php8.1-intl

2단계. 필수 구성 요소 설치(Debian)

Microsoft ODBC driver for SQL Server 설치(Linux)의 지침에 따라 Debian용 ODBC 드라이버를 설치합니다. unixodbc-dev 패키지도 설치해야 합니다. pecl 명령에서 PHP 드라이버를 설치하는 데 사용됩니다.

브라우저에 올바르게 표시되도록 PHP 출력을 가져오기 위해 올바른 로캘을 생성해야 할 수도 있습니다. 예를 들어, en_US UTF-8 로캘의 경우 다음 명령을 실행합니다.

Bash
sudo su
sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
locale-gen

/usr/sbin를 $PATH에 추가해야 할 수 있습니다. 여기에 locale-gen 실행 파일이 있기 때문입니다.

3단계 Microsoft SQL Server용 PHP 드라이버 설치(Debian)

Bash
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv

시스템에 PHP 버전이 하나만 있는 경우 마지막 단계를 phpenmod sqlsrv pdo_sqlsrv로 단순화할 수 있습니다. locale-gen과 마찬가지로 phpenmod는 /usr/sbin에 위치하므로 이 디렉터리를 $PATH에 추가해야 할 수도 있습니다.

4단계 Apache 설치 및 드라이버 로드 구성(Debian)

Bash
sudo su
apt-get install libapache2-mod-php8.1 apache2
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php8.1

5단계 Apache 다시 시작 및 샘플 스크립트 테스트(Debian)

Bash
sudo service apache2 restart

설치를 테스트하려면 이 문서의 마지막에 제공되는 설치 테스트를 참조하세요.

SUSE에 설치

 참고

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

다음 지침에서 <SuseVersion>을 사용 중인 SUSE 버전으로 바꿉니다. SUSE Linux Enterprise Server 15를 사용 중인 경우 SLE_15_SP3 또는 SLE_15_SP4(또는 그 이상)가 됩니다. SUSE 12의 경우 SLE_12_SP5(또는 그 이상)를 사용합니다. SUSE Linux 버전에 따라 사용할 수 없는 PHP 버전도 있습니다. 기본 버전 PHP를 사용할 수 있는 SUSE 버전을 확인하려면 http://download.opensuse.org/repositories/devel:/languages:/php을(를) 참조하고, 각 SUSE 버전에서 사용할 수 있는 다른 PHP 버전을 확인하려면 http://download.opensuse.org/repositories/devel:/languages:/php:/을(를) 참조하세요.

 참고

PHP 7.4 이상의 패키지는 현재 SUSE 12에서 사용할 수 없습니다.

1단계. PHP 설치(SUSE)

Bash
sudo su
zypper -n ar -f https://download.opensuse.org/repositories/devel:languages:php/<SuseVersion>/devel:languages:php.repo
zypper --gpg-auto-import-keys refresh
zypper -n install php8 php8-pdo php8-devel php8-openssl

2단계. 필수 구성 요소 설치(SUSE)

Microsoft ODBC driver for SQL Server 설치(Linux)의 지침에 따라 SUSE용 ODBC 드라이버를 설치합니다. unixodbc-dev 패키지도 설치해야 합니다. pecl 명령에서 PHP 드라이버를 설치하는 데 사용됩니다.

3단계 Microsoft SQL Server용 PHP 드라이버 설치(SUSE)

Bash
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/sqlsrv.ini
exit

4단계 Apache 설치 및 드라이버 로드 구성(SUSE)

Bash
sudo su
zypper install apache2 apache2-mod_php8
a2enmod php8
echo "extension=sqlsrv.so" >> /etc/php8/apache2/php.ini
echo "extension=pdo_sqlsrv.so" >> /etc/php8/apache2/php.ini
exit

5단계 Apache 다시 시작 및 샘플 스크립트 테스트(SUSE)

Bash
sudo systemctl restart apache2

설치를 테스트하려면 이 문서의 마지막에 제공되는 설치 테스트를 참조하세요.

Alpine에 설치

 참고

PHP 8.1 이상은 Alpine용 테스트 또는 에지 리포지토리에서 사용할 수 있습니다. 대신 원본에서 PHP를 컴파일할 수 있습니다.

1단계. PHP 설치(Alpine)

Alpine용 PHP 패키지는 edge/community 리포지토리에 있을 수 있습니다. WIKI 페이지에서 커뮤니티 리포지토리를 사용하도록 설정을 확인하세요. /etc/apk/repositories에 다음 줄을 추가하여 <mirror>를 Alpine 리포지토리 미러의 URL로 바꿉니다.

Bash
http://<mirror>/alpine/edge/community

다음을 실행합니다.

Bash
sudo su
apk update
# Note: The php*-pdo package is required only for the PDO_SQLSRV driver
# For PHP 7.*
apk add php7 php7-dev php7-pear php7-pdo php7-openssl autoconf make g++
# For PHP 8.*
apk add php8 php8-dev php8-pear php8-pdo php8-openssl autoconf make g++
# The following symbolic links are optional but useful
ln -s /usr/bin/php8 /usr/bin/php
ln -s /usr/bin/phpize8 /usr/bin/phpize
ln -s /usr/bin/pecl8 /usr/bin/pecl
ln -s /usr/bin/php-config8 /usr/bin/php-config

2단계. 필수 구성 요소 설치(Alpine)

Microsoft ODBC driver for SQL Server 설치(Linux)의 지침에 따라 Alpine용 ODBC 드라이버를 설치합니다. unixodbc-dev 패키지(sudo apk add unixodbc-dev)도 설치해야 합니다. pecl 명령에서 PHP 드라이버를 설치하는 데 사용됩니다.

3단계 Microsoft SQL Server용 PHP 드라이버 설치(Alpine)

Bash
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/10_pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20_sqlsrv.ini

4단계 Apache 설치 및 드라이버 로드 구성(Alpine)

Bash
# For PHP 7.*
sudo apk add php7-apache2 apache2
# For PHP 8.*
sudo apk add php8-apache2 apache2

5단계 Apache 다시 시작 및 샘플 스크립트 테스트(Alpine)

Bash
sudo rc-service apache2 restart

설치를 테스트하려면 이 문서의 마지막에 제공되는 설치 테스트를 참조하세요.

macOS에 설치

아직 설치하지 않은 경우 다음과 같이 brew를 설치합니다.

Bash
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 참고

PHP 8.2 또는 8.3을 설치하려면 다음 명령에서 php@8.1을 각각php@8.2 또는 php@8.3으로 바꿉니다.

1단계. PHP 설치(macOS)

Bash
brew tap
brew tap homebrew/core
brew install php@8.1

이제 PHP가 경로에 있어야 합니다. php -v를 실행하여 올바른 버전의 PHP를 실행하고 있는지 확인합니다. PHP가 경로에 없거나 올바른 버전이 아닌 경우 다음 명령을 실행합니다.

Bash
brew link --force --overwrite php@8.1

Apple M1 ARM64를 사용하는 경우 다음 경로를 설정해야 할 수 있습니다.

Bash
export PATH="/opt/homebrew/bin:$PATH"

2단계. 필수 구성 요소 설치(macOS)

Microsoft ODBC driver for SQL Server 설치(macOS)의 지침에 따라 macOS용 ODBC 드라이버를 설치합니다.

 참고

Apple M1 ARM64 하드웨어를 사용하는 경우 에뮬레이터 Rosetta 2를 사용하지 않고 Microsoft ODBC 드라이버 17.8 이상을 직접 설치하세요.

또한 GNU make 도구를 설치해야 할 수도 있습니다.

Bash
brew install autoconf automake libtool

3단계 Microsoft SQL Server용 PHP 드라이버 설치(macOS)

Bash
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Apple M1 ARM64를 사용하는 경우 대신 다음을 수행합니다.

Bash
sudo CXXFLAGS="-I/opt/homebrew/opt/unixodbc/include/" LDFLAGS="-L/opt/homebrew/lib/" pecl install sqlsrv
sudo CXXFLAGS="-I/opt/homebrew/opt/unixodbc/include/" LDFLAGS="-L/opt/homebrew/lib/" pecl install pdo_sqlsrv

4단계 Apache 설치 및 드라이버 로드 구성(macOS)

 참고

최신 macOS 11.0 Big Sur에는 Apache 2.4가 사전 설치되어 있지만 Apple에서는 일부 필요한 스크립트를 제거했습니다. 이 문제를 해결하는 방법은 Homebrew를 통해 Apache 2.4를 설치한 후 구성하는 것이지만, 이는 이 설치 가이드의 범위를 벗어나므로 자세한 지침은 Apache 또는 Homebrew를 확인하세요.

Bash
brew install apache2

Apache 설치 프로그램을 위한 Apache 설정 파일인 httpd.conf를 찾으려면 다음을 실행합니다.

Bash
/usr/local/bin/apachectl -V | grep SERVER_CONFIG_FILE

다음 명령은 httpd.conf에 필요한 구성을 추가합니다. /usr/local/etc/httpd/httpd.conf를 이전 명령에서 반환된 경로로 대체해야 합니다.

Bash
echo "LoadModule php7_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp7.so" >> /usr/local/etc/httpd/httpd.conf
(echo "<FilesMatch .php$>"; echo "SetHandler application/x-httpd-php"; echo "</FilesMatch>";) >> /usr/local/etc/httpd/httpd.conf

5단계 Apache 다시 시작 및 샘플 스크립트 테스트(macOS)

Bash
sudo apachectl restart

설치를 테스트하려면 이 문서의 마지막에 제공되는 설치 테스트를 참조하세요.

설치 테스트

이 샘플 스크립트를 테스트하려면 시스템의 문서 루트에 testsql.php 파일을 만듭니다. 이 경로는 /var/www/html/(Ubuntu, Debian 및 Red Hat), /srv/www/htdocs(SUSE), /var/www/localhost/htdocs(Alpine) 또는 /usr/local/var/www(macOS)입니다. 서버, 데이터베이스, 사용자 이름 및 비밀번호를 적절하게 바꿔 다음 스크립트를 복사합니다.

SQLSRV 예시

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

function exception_handler($exception) {
    echo "<h1>Failure</h1>";
    echo "Uncaught exception: " , $exception->getMessage();
    echo "<h1>PHP Info for troubleshooting</h1>";
    phpinfo();
}

set_exception_handler('exception_handler');

// 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> Success 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 "<h1>SQL Error:</h1>";
    echo "Error information: <br/>";
    foreach ($errors as $error) {
        echo "SQLSTATE: ". $error['SQLSTATE'] . "<br/>";
        echo "Code: ". $error['code'] . "<br/>";
        echo "Message: ". $error['message'] . "<br/>";
    }
}
?>

PDO_SQLSRV 예시

PHP
<?php
try {
    $serverName = "yourServername";
    $databaseName = "yourDatabase";
    $uid = "yourUsername";
    $pwd = "yourPassword";
    
    $conn = new PDO("sqlsrv:server = $serverName; Database = $databaseName;", $uid, $pwd);

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

    // Executes the query
    $stmt = $conn->query($tsql);
} catch (PDOException $exception1) {
    echo "<h1>Caught PDO exception:</h1>";
    echo $exception1->getMessage() . PHP_EOL;
    echo "<h1>PHP Info for troubleshooting</h1>";
    phpinfo();
}

?>

<h1> Success Results : </h1>

<?php
try {
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo $row['SQL_VERSION'] . PHP_EOL;
    }
} catch (PDOException $exception2) {
    // Display errors
    echo "<h1>Caught PDO exception:</h1>";
    echo $exception2->getMessage() . PHP_EOL;
}

unset($stmt);
unset($conn);
?>

브라우저를 https://localhost/testsql.php(macOS의 경우 https://localhost:8080/testsql.php)로 가리킵니다. 이제 SQL Server/Azure SQL 데이터베이스에 연결할 수 있습니다. SQL 버전 정보를 보여주는 성공 메시지가 표시되지 않으면 명령줄에서 스크립트를 실행하여 몇 가지 기본적인 문제 해결사를 수행할 수 있습니다.

Bash
php testsql.php

명령줄에서 실행에 성공했지만 브라우저에 아무것도 표시되지 않으면 Apache 로그 파일을 확인합니다. 자세한 도움말은 이동할 위치에 대한 지원 리소스를 참조하세요.

참고 항목

Microsoft Drivers for PHP for SQL Server 시작

Microsoft Drivers for PHP for SQL Server 로드

Microsoft Drivers for PHP for SQL Server에 대한 시스템 요구 사항

 

[출처] https://learn.microsoft.com/ko-kr/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver16

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
156 [php] php 와 javascript 차이 & 상호 간의 호출 방법 file 졸리운_곰 2024.08.13 8
155 [php] html 파일안의 php 코드 실행하기 : Apache 2 server on ubuntu can't parse php code inside html file 졸리운_곰 2024.08.13 3
» [php] 리눅스 (유닉스 ) 계열에서 php로 마이크로소프트 MS SQL 서버 접속 : Microsoft Drivers for PHP for SQL Server의 Linux 및 macOS 설치 자습서 졸리운_곰 2024.08.07 9
153 PHP 실행 지연(delay) 시키기 졸리운_곰 2024.07.07 11
152 [PHP] 문자열 비교하기 - ===, strcmp(), strcasecmp(), strncmp() 졸리운_곰 2024.07.07 8
151 [PHP] 외부 URL의 내용 얻어오기(cURL, file_get_contents) 졸리운_곰 2024.07.07 9
150 [PHP] CURL를 활용하여 POST방식으로 JSON데이터 주고 받기 졸리운_곰 2024.06.21 14
149 [MySQL+PHP] MySQL 접속후 데이터 가져오기 졸리운_곰 2024.04.18 22
148 [php] [xampp] xampp php 버전 폴더 (디렉토리) 별 설정 : Running multiple PHP versions on XAMPP file 졸리운_곰 2024.03.21 9
147 [php] [PHP] Laravel - PayPal 결제 모듈 연동하기 (2) - 백엔드 처리 file 졸리운_곰 2024.03.17 10
146 [php] [PHP] Laravel - PayPal 결제 모듈 연동하기 (1) file 졸리운_곰 2024.03.17 14
145 [php] PHP - Show JSON array in html table 졸리운_곰 2024.02.18 9
144 [php] php / string을 json으로 변환 한 뒤 값 가져오기 졸리운_곰 2024.02.18 10
143 [php] Low Code Web Content Server: Making Marks on the Digital Shore. An Anecdotal View. : 로우 코드 웹 콘텐츠 서버: 디지털 해안에 흔적을 남기다. 일화적인 견해. file 졸리운_곰 2024.02.18 17
142 [php] [xampp] [php] php의 mail() 함수로 구글 이메일 보내기 / XAMPP 서버 및 aws의 EC2 / php mail function to send Gmail at XAMPP and AWS EC2 not working / Username and Password not accepted. file 졸리운_곰 2023.09.12 27
141 [php] PHP / MariaDB / 데이터베이스 값 가져와서 출력하기 졸리운_곰 2023.06.22 16
140 [php] Start Using HTML5 WebSockets Today With a PHP Server 지금 PHP 서버에서 HTML5 WebSocket 사용 시작 졸리운_곰 2023.05.09 11
139 [php] json_encode 유니코드 한글 깨짐 해결방법 졸리운_곰 2023.02.04 39
138 PHP 카운터 만들기-[1] 졸리운_곰 2022.07.20 25
137 PHP로 카운터 만들기 졸리운_곰 2022.07.20 31
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED