这里不是 7.3 的最终版本。 参考资料:
- https://www.microsoft.com/en-us/sql-server/developer-get-started/php-rhel
- https://github.com/Microsoft/msphpsql/blob/PHP-7.0-Linux/LinuxTutorial.md
引言
本来是使用 centos 6.8 的,但是找更新源太慢,遂一怒之下,直接换了 centos 7.3。下面讲主要介绍 MS sql Server 的驱动安装,以及在 Yii 2.0 中如何使用。对于 MS sql Server 的安装可以跳过。
一、准备
最小化安装 centos 7.3 x64 到自己电脑上, 非 7.x centos,以及非 x64 系列,不再本文考虑之列。且 PHP 7.x 连接 sql Server (>2005),需要 sqlsrv 或者 pdo_sqlsrv 的版本为 4.x ,见 win 下驱动说明,这里可能不适合 linux 下场景吧。
二、centos 7 下安装 MS sql Server(可选)
下面全部摘抄这里:https://www.microsoft.com/en-us/sql-server/developer-get-started/php-rhel
sudo su curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo exit sudo yum update sudo yum install mssql-server sudo /opt/mssql/bin/sqlservr-setup
一步步来,就可以了。 据说会弹出如下内容,亲测,确实也是,不知道后续版本会不会改变。
Microsoft(R) sql Server(R) Setup To abort setup at anytime,press Ctrl-C. The license terms for this product can be downloaded from http://go.microsoft.com/fwlink/?LinkId=746388 and found in /usr/share/doc/mssql-server/LICENSE.TXT. Do you accept the license terms? If so,please type YES: Please enter a password for the system administrator (SA) account: Please confirm the password for the system administrator (SA) account:
这样就安装好了。限于本人电脑内存不足 4G 用不起来。
三、安装 sql Server 驱动
sudo su curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo exit sudo yum update sudo yum remove unixODBC #to avoid conflicts sudo ACCEPT_EULA=Y yum install msodbcsql mssql-tools sudo yum install unixODBC-utf16-devel #this step is optional but recommended*
安装如果没有错误,测试。
odbcinst –j odbcinst -q -d -n "ODBC Driver 13 for sql Server"
看看会不会弹出不出错的内容,因为当前是 13 ,后续版本是不是升级,请核实再测试。
四、安装 XAMPP 相关内容
这个其实不适合作为生产服务器的,本文为了方便,假设已经安装好了。从这里 https://github.com/Microsoft/msphpsql/releases 下载 centos 7 的已经打包好的文件。放在 /opt/lampp/lib/PHP/extensions/no-debug-non-zts-20131226/ 类似的文件夹下,然后在 /opt/lampp/etc/PHP.ini 文件加入
extension=sqlsrv.so extension=pdo_sqlsrv.so
最好根据实际文件名称加入。我只写了下面一行,也即 extension=pdo_sqlsrv.so
中间遇到一些问题,说是缺少 GLIBCXX 之类的问题,经搜索,把系统 /usr/lib64/libstdc++.so.6.0.19 代替了报错说的那个 libstdc++.so.6 文件。方便起见,可以加一个链接过去。
五、Yii 2 中链接 sql Server
比较简单,就是 ./common/config/main-local.PHP 中
'dsn'=>'sqlsrv:Server=192.168.1.10;Database=<your database>',//略
该数据库就可以使用了。其他知识见其他部分。