RHEL

PHP 8.0 기준입니다.

PECL 에서 설치

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
BASH


REMI 저장소에서 설치(권장)

$ sudo yum install php80-php-sqlsrv
BASH


설치 여부 확인

$ php -r "phpinfo();" |grep sqlsrv

/etc/opt/remi/php80/php.d/40-sqlsrv.ini,
Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, zip, sqlsrv
PDO drivers => mysql, sqlite, sqlsrv
pdo_sqlsrv
pdo_sqlsrv support => enabled
pdo_sqlsrv.client_buffer_max_kb_size => 10240 => 10240
pdo_sqlsrv.log_severity => 0 => 0
pdo_sqlsrv.report_additional_errors => 1 => 1
pdo_sqlsrv.set_locale_info => 2 => 2
BASH


설치후 PHP-FPM 재구동

$ sudo systemctl restart php80-php-fpm
BASH


Ubuntu

사전에 PHP 와 PEAR 패키지 설치 필요

sudo apt install php-pear php-dev
BASH


의존성 있는 ODBC Driver 를 먼저 설치합니다. 다음은 ubuntu 20.04 용 설치 스크립트인데 다른 버전일 경우 MS 문서 를 참고합니다.

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#Ubuntu 20.04
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit

sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# for unixODBC development headers
sudo apt-get install -y unixodbc-dev
BASH



PERL config 를 설정합니다.

sudo pecl config-set php_ini /etc/php/8.0/fpm/php.ini
BASH


SQL Server 드라이버와 PDO 드라이버를 설치합니다.

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
BASH


extension ini 파일을 생성합니다.

sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini
exit
BASH


extension 을 활성화합니다.

sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv
BASH



sqlsrv.ini 와 pdo_sqlsrv.ini가 있는지 확인

ls /etc/php/8.0/fpm/conf.d/*sqlsrv.ini
CODE


PHP-FPM 재구동

systemctl status php8.0-fpm
CODE


같이 보기

Ref