lamp + mssql环境部署之三:安装sql_server扩展
需要安装两个扩展 分别为pdo_sqlsrv 和 sqlsrv。
1.准备工作
如安装过odbc 需要卸载
yum remove unixODBC
安装扩展
yum install msodbcsql mssql-tools unixODBC-devel
2.安装pdo_sqlsrv 和 sqlsrv
因php版本为7.3.5 故选择安装pdo_sqlsrv版本为5.6.1.
其他版本的下载地址
wget下载
wget http://pecl.php.net/get/pdo_sqlsrv-5.6.1.tgz
解压
tar -zxvf pdo_sqlsrv-5.6.1.tgz
进入目录
cd pdo_sqlsrv-5.6.1
执行phpize (根据自己php安装路径进行修改)
/usr/bin/phpize
执行编译
./configure --with-php-config=/usr/bin/php-config
编译报错:

解决办法:出现该情况是由于c++编译器的相关package没有安装,以root用户登陆,在终端上执行:
yum install gcc-c++
安装
make && make install
安装sqlsrv参考上述方法
下载地址为
wget http://pecl.php.net/get/sqlsrv-5.6.1.tgz
将sqlsrv扩展加入php.ini
extension = "pdo.so"
extension = "pdo_sqlsrv.so"
extension = "sqlsrv.so"
重启php-fpm即可,有以下两种方法:
方法一:
systemctl restart php-fpm #重启php-fpm
systemctl status php-fpm #查看php-fpm运行状态
方法二:
找到php-fpm 进程id,杀死进程,重新启动进程,依次执行以下命令
ps aux | grep php-fpm
kill -9 进程号
/etc/init.d/php-fpm start
测试连接sqlServer代码:
<?php
header("content-type:text/html;charset=gbk");
$server = "localhost,1433"; //数据库服务器
$uid = "test"; //用户名
$pwd = "123"; //密码
$db = "test_db"; // 数据库名
$connectionInfo=array("UID"=>$uid,"PWD"=>$pwd,"Database"=>$db);
$conn =sqlsrv_connect($server,$connectionInfo);
if( $conn == false) {
echo "connection Fail!";
die( var_dump( sqlsrv_errors(), true));
}else{
echo "connection Success!";
}
phpinfo();
?>
如安装之后连接sqlserver出现以下错误
SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver for SQL Server to communicate with SQL Server.
解决办法:
- 安装UnixODBC
yum install unixODBC unixODBC-devel
- 查看odbc配置信息
odbc_config --version --longodbcversion --cflags --ulen --libs --odbcinstini --odbcini
- 命令查看安装配置文件所在的位置
odbcinst -j
- 查看unixODBC版本
isql --version
- 安装ODBC Driver 17 for SQL Server
wget https://packages.microsoft.com/rhel/7/prod/msodbcsql17-17.3.1.1-1.x86_64.rpm
rpm -ivh msodbcsql17-17.3.1.1-1.x86_64.rpm
ll /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
- 配置msql数据源,修改odbcdsn.ini
vim /etc/odbcdsn.ini
[MSSQL-KQ]
Driver = ODBC Driver 17 for SQL Server
Description = Attendance SQL Server
Trace = No
Server = 10.128.6.6
Port = 1433
- 加载odbcdsn
odbcinst -i -s -f /etc/odbcinst.ini -l

浙公网安备 33010602011771号