Ubuntu24搭建PHP访问SQL Server环境
添加了Microsoft的官方APT源
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
驱动安装
sudo ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev msodbcsql17
这里ACCEPT_EULA=Y
是必需的,因为它表示你接受Microsoft的EULA(最终用户许可协议)。
ODBC17安装参考【https://learn.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver16&tabs=ubuntu18-install%2Cubuntu17-install%2Cdebian8-install%2Credhat7-13-install%2Crhel7-offline】
安装PHP扩展sqlsrv
sudo pecl install sqlsrv-5.10.0 pdo_sqlsrv-5.10.0
安装成功提示如下
安装成功后,按照提示,在php.ini中增加配置(查询文件位置:find / -name "php.ini")
extension=sqlsrv.so
extension=pdo_sqlsrv.so
然后重启php7.4-fpm
systemctl restart php7..4-fpm
查询是否安装成功
php -m |grep "sqlsrv"
报错:PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv.so'
报错:PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv.so' (tried: /usr/lib/php/20190902/pdo_sqlsrv.so (/usr/lib/php/20190902/pdo_sqlsrv.so: undefined symbol: php_pdo_unregister_driver), /usr/lib/php/20190902/pdo_sqlsrv.so.so (/usr/lib/php/20190902/pdo_sqlsrv.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
解决方案:加载 pdo_sqlsrv之前先加载pdo即可