이번에 작업 환경을 Mac 으로 변경하면서

Docker를 이용해서 PHP + SQL Server 환경을 만들어 내야 했다.

문제는

기존에는 아래 링크에서 본대로 작업하여 문제 없이 사용하였는데,

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

참고로 모두 작업 후

pecl install sqlsrv

pecl install pdo_sqlsrv

명령을 실행시켜 줘야 한다.


규모가 큰 프로젝트에 사용하면서 에러가 발생했다.

에러는 아래와 같다.


PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlsrv.so' (tried: /usr/lib64/php/modules/pdo_sqlsrv.so (/usr/lib64/php/modules/pdo_sqlsrv.so: undefined symbol: php_pdo_register_driver), /usr/lib64/php/modules/pdo_sqlsrv.so.so (/usr/lib64/php/modules/pdo_sqlsrv.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0


이거 문제 덕분에 거의 2일은 사용된 것 같다.

결국 방법은

https://github.com/Microsoft/msphpsql/wiki/FAQ#what-is-this-error-php-startup-unable-to-load-dynamic-library-pdo_sqlsrvso

이 링크에 나와 있다.

결론적으로 말하자면
자신이 사용하게 될 곳의 extension 로드되는 곳이 있는데,
그 곳에 직접 extension=pdo_sqlsrv.so 후순위로 시작되도록 하면 되었던 것이다.

나의 경우
echo "extension=pdo_sqlsrv.so" >> /etc/php/7.2/fpm/conf.d/30-pdo_sqlsrv.so

이렇게 해서 해결 하였다.


+ Recent posts