首先安装Centos上的Microsoft ODBC Driver for SQL Server,官网文档连接如下,centos使用的是RedHat Enterprise Server 6 和 7
https://docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017
官网教程如下所述:
添加微软官方repo,我使用的是centos7,所以使用下面的命令行
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
为了防止冲突需要删除以下依赖包,但是我没有删除。
yum remove unixODBC-utf16 unixODBC-utf16-devel #防止冲突
ACCEPT_EULA=Y yum install msodbcsql17
# 可选:用于bcp和sqlcmd
ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# 可选: 用于unixODBC开发标头
yum install unixODBC-devel
我使用的是:yum install msodbcsql mssql-tools unixODBC-devel
下载扩展源码包:http://pecl.php.net/package/pdo_sqlsrv
我选择如下版本
命令行如下:
wget http://pecl.php.net/get/pdo_sqlsrv-5.3.0.tgz
tar -zxvf pdo_sqlsrv-5.3.0.tgz
cd pdo_sqlsrv-5.3.0/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
php.ini
中添加extension="pdo_sqlsrv.so"
,重启php-fpm或web服务器
(尴尬的是gcc8.2.0编译的不可以用,哎还是我用低版本的gcc编译后拿过来的)
此时使用:php -m 看一下是否存在pdo_sqlsrv,如果存在说明安装成功了。
看一下phpinfo信息,多了以下信息,看到下图的信息说明php的sqlserver扩展安装成功。
如果还想用一个例子测试一下,我这有一个简单的测试代码:
query('SELECT * FROM dbo.your_table_name') as $row) {
var_dump($row);
return;
}