Linux

02. [Linux/Ubuntu] sqlsrv 드라이버 설치 방법

drizzle0925 2021. 7. 7. 13:14
728x90

작업환경

Linux Ubuntu 20.04 LTS

php 7.4.3

FPM-nginx


이제까지는 php와 mysql 연동으로만 사용했는데 업무관계상 mssql과 연동할 일이 생겨서 불가피하게 sqlsrv를 설치하게 되었습니다. mssql연동은 한 번도 해본 적 없기 때문에 역경이 예상되네요...

 

 

아래 사이트는 마이크로소프트에서 공식제공하는 내용으로 Linux에 설치하는 방법이 나와있다.

https://docs.microsoft.com/ko-kr/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#ubuntu17 

 

Microsoft ODBC Driver for SQL Server 설치(Linux) - ODBC Driver for SQL Server

Linux 클라이언트에 Microsoft ODBC Driver for SQL Server를 설치하여 데이터베이스 연결을 사용하도록 설정하는 방법을 알아봅니다.

docs.microsoft.com

 

 

2021. 01. 29로 비교적 날짜도 최신화되어 있고 아래를 보면 Ubuntu메뉴도 있다.

Ubuntu를 클릭해서 해당 내용으로 이동한다.

 

현재 사용하고 있는 버전은 Ubuntu 20.04이므로 20.04 부분을 참고하여 인스톨한다.

 

 

아래 명령어를 차례대로 터미널에 입력합니다.

(PHP, FPM 설치 완료 기준입니다.)

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

sudo ACCEPT_EULA=Y apt-get install -y mssql-tools

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

source ~/.bashrc

sudo apt-get install -y unixodbc-dev

sudo apt install php-pear php-dev

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

sudo pecl install sqlsrv pdo_sqlsrv

sudo su

printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.4/mods-available/sqlsrv.ini

printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini

exit

sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv

 

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

 

 

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

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

 

 

php.ini에 다음 코드를 추가합니다. 

아차피 서버 : PHP 7.4 버전이라면 /etc/php/7.4/apache2/php.ini 디렉터리에 있습니다.

FPM 서버 : PHP 7.4 버전이라면 /etc/php/7.4/fpm/php.ini 디렉토리에 있습니다.

extension=sqlsrv.so
extension=pdo_sqlsrv.so

 

 

php.ini 파일 수정이 끝나면 웹서버를 재시작합니다.

 

아파치

service apache2 restart

 

FPM

sudo systemctl restart php7.4-fpm

 

 

phpinfo() 함수를 이용해서 잘 추가되었는지 확인해봅니다.

수정전 / 수정후

잘 추가된것을 확인했습니다.

 

 

테스트

 

 


참고사이트

https://github.com/microsoft/msphpsql/issues/1145

 

PHP Warning: PHP Startup: Unable to load dynamic library 'sqlsrv.so' & 'pdo_sqlsrv.so' · Issue #1145 · microsoft/msphpsql

Hi, I wanted to be able to access SQL Server from Ubuntu 18.04, so I followed this procedure: sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - #Download appropriate pa...

github.com

 

728x90