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
posted @ 2022-07-28 17:24  panbin_2006  阅读(417)  评论(0)    收藏  举报