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
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_nts和extension = 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
启动服务器即可搞定。