linux站点服务连接sqlsrv数据库

1.      由于使用的sql server数据库,所以需要安装sqlsrv驱动来连接,我先使用的时centos7作为服务器系统,用的thinkphp6框架,页面能正常访问打开,每次连接数据库查询时就报错,apache报错503,nginx报错502;一直没找到解决办法,网上查询的办法也都试过了,也不行;

2.      后面用BC-Linux系统来安装服务器,该系统是在centos的基础上改进的,我用的是Bc-Linux8.2版本,下载地址:http://mirrors.bclinux.org/;安装好后,我使用宝塔面板,安装apache和php74;,

3.      加入微软的源

curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssqlrelease.repo

4.      防止冲突先卸载原有版本(可选)

yum remove unixODBC

5.      安装驱动(三个都要装上,缺一不可)

yum install msodbcsql17 mssql-tools unixODBC-devel

6.      下载pdo_sqlsrv扩展包

https://github.com/microsoft/msphpsql/releases

7.      下载扩展5.10.0的扩展
5.8.0开始,sqlsrv扩展不再支持SQL Server2008R2,所以需要老一点的版本。

这里我用的5.10.0的扩展
https://github.com/microsoft/msphpsql/releases/download/v5.10.0-preview/CentOS8-7.4.tar

8.     解压
tar xf CentOS8-7.4.tar

9.     进入解压目录
cd CentOS8-7.4

10. 执行命令
php_pdo_sqlsrv_74_nts.so, php_ sqlsrv_74_nts.so复制到对应的extension目录

我的位置是:

/www/server/php/lib/php/extensions/no-debug-zts-20190902/

11.  更新php.ini
修改/server/php/etc/php.ini 最后一个extension= 后面添加上extension = php _sqlsrv_74_ntsextension = php_pdo_sqlsrv_74_nts

或通过宝塔修改该配置;

12.  修改ssl协议的版本
vi /etc/crypto-policies/back-ends/opensslcnf.config
MinProtocol=TLSv1.3改为
MinProtocol=TLSv1

 

如果不修改,在连接sqlserver2008r2数据库时,会提示:SSL routines:ssl_choose_client_version:unsupported protocol
然后重启服务器reboot
启动服务器即可搞定。


相关推荐

评论