加入微软的源
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo
如果之前安装过需要先卸载,建议用纯净的环境安装。
yum remove unixODBC
安装驱动 三个一次性安装,期间需要输入大写的YES回车确认
yum install msodbcsql mssql-tools unixODBC-devel
下载pdo_sqlsrv扩展包 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
使用对应php版本的phpize,其中72代表的是7.2版本的PHP目录,我这里安装环境以宝塔为例,其他环境有可能PHP的安装目录会有所不同,根据自己需要调整。
/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config
make test 这句可以忽略,执行完上面一句后,会提示别忘了执行make test,是检查是否有错误的功能。
编译安装
make && make install
加入扩展文件到php.ini,这里的PHP目录和版本同上面一样,根据自己需要调整。
echo "extension = pdo_sqlsrv.so" >> /www/server/php/72/etc/php.ini
刷新PHP配置
/etc/init.d/php-fpm-72 reload
检查扩展是否安装成功,安装成功会显示 pdo_sqlsrv
/www/server/php/72/bin/php -m|grep -i sqlsrv
PHP测试代码
$dbms = 'sqlsrv';
$host = 103.91.208.128,1433;
$user = 'sa';
$password = 'password';
$dbname = 'database';
$dsn = "$dbms:Server=$host;Database=$dbname";
$DB = new PDO($dsn, $user, $password);
var_dump($DB);
返回Object对象,代表连接成功。
要点:
本文安装环境为CentOS7.6,安装环境为宝塔面板,PHP版本为7.2,是全新的系统加宝塔环境,安装完宝塔后安装Mysql5.6,PHP7.2,Ngix1.16.0之后就按照上面的步骤进行安装即可。
期间make test 的时候提示需要打开proc_open(),是php.ini 里面禁用的一个函数,到php.ini里面删除就可以了。
都正常之后,phpinfo()里面会显示pdo_sqlsrv。连接SQLserver 2008 r2测试正常。
pdo_sqlsrv5.3.0官方说明是支持2008r2及以上数据库,以下的没有测试。
相关网站记录:
本贴参照的地址,感谢安拓提供的说明。
https://www.anttoweb.com/kb/bt-pdo_sqlsrv/
下面两个是微软的github地址和pecl官方地址