02. [Linux/Ubuntu] sqlsrv 드라이버 설치 방법
작업환경
Linux Ubuntu 20.04 LTS
php 7.4.3
FPM-nginx
이제까지는 php와 mysql 연동으로만 사용했는데 업무관계상 mssql과 연동할 일이 생겨서 불가피하게 sqlsrv를 설치하게 되었습니다. mssql연동은 한 번도 해본 적 없기 때문에 역경이 예상되네요...
아래 사이트는 마이크로소프트에서 공식제공하는 내용으로 Linux에 설치하는 방법이 나와있다.
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