centos7+php+sqlserver配置方法

hykeda5年前centos354
这段时间迁移老项目,其中有一个项目使用php编写,放置在windows中,然后连接的是sqlserver数据库,现在将项目搬迁至centos中,需要配置环境。 系统环境: 1、centos7; 2、宝塔面板6.9; 3、php7.3(宝塔面板可以多版本php安装和切换) 这里介绍两种连接方式: 一、pdo_sqlsrv方式 【加入微软的源】
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo
【安装驱动 unixODBC】
yum install msodbcsql mssql-tools unixODBC-devel
【下载pdo_sqlsrv扩展包】
wget http://pecl.php.net/get/pdo_sqlsrv-5.6.0.tgz
注:pdo_sqlsrv 下载地址:http://pecl.php.net/package/pdo_sqlsrv 然后解压
tar -zxvf pdo_sqlsrv-5.6.0.tgz
cd pdo_sqlsrv-5.6.0
【当前为宝塔,路径如下,使用对应php版本的phpize】
/www/server/php/73/bin/phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make && make install
【加入扩展】
echo "extension = pdo_sqlsrv.so" >> /www/server/php/73/etc/php.ini
/etc/init.d/php-fpm-73 reload
【检查扩展是否安装成功】
/www/server/php/73/bin/php -m|grep -i  sqlsrv
安装成功后,可以用phpinfo()查看pdo_sqlsrv是否已经安装成功。 php调用方式:
// 数据库用户
$strDbUser = 'sqlTour_WWK3n3';
// 数据库密码
$strDbPass = 'qADPnXHQ7kYtZMPTGIuRMA';
// 数据库服务器地址
$strDbHost = 'tour.eyuyao.com';
// 数据库名称
$strDbName = 'dbTour';
// 连接数据库的字符串定义
$strDsn = "sqlsrv:Server=$strDbHost;Database=$strDbName;";
// 生成pdo对象
$objDB = new PDO($strDsn, $strDbUser, $strDbPass);
foreach ($objDB->query('select* from table') as $row) {
    var_dump($row);
    return;
}
二、sqlsrv方式 加入微软源和安装驱动和上面一样,这里从下载安装开始 【下载sqlsrv扩展包:http://pecl.php.net/package/sqlsrv
wget http://pecl.php.net/get/sqlsrv-5.6.0.tgz
然后解压
tar -zxvf sqlsrv-5.6.0.tgz
cd sqlsrv-5.6.0
【当前为宝塔,路径如下,使用对应php版本的phpize】
/www/server/php/73/bin/phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make && make install
【加入扩展】
echo "extension = sqlsrv.so" >> /www/server/php/73/etc/php.ini
/etc/init.d/php-fpm-73 reload
安装成功后调用:
$serverName = "地址";
$connectionInfo = array("Database"=>"数据库","UID"=>"用户名","PWD"=>"密码","CharacterSet" => "UTF-8"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
if(!$conn) { 
echo "Connection could not be established."; 
}
注意点: 1、linux中只有4.0以上才有支持,低版本只支持windows。 2、4.0以上只能支持php7.0以上,所以php版本低的还是直接用windows吧。 3、微软网站版本支持说明:https://docs.microsoft.com/zh-cn/sql/connect/php/microsoft-php-drivers-for-sql-server-support-matrix?view=sql-server-2017。 4、查看版本发现:https://github.com/Microsoft/msphpsql/releases 5、微软下载地址:https://docs.microsoft.com/zh-cn/sql/connect/php/download-drivers-php-sql-server?view=sql-server-2017 6、github地址:https://github.com/Microsoft/msphpsql 参考文档:https://www.cnblogs.com/xjnotxj/p/6125305.html 宝塔安装参考文档:https://www.jianshu.com/p/730f2cca9d57
标签: linuxphpsqlsrv

相关文章

centos中yum update时curl报错处理

参考文档https://vircloud.net/linux/centos-update.html...

两台阿里云ECS直接数据传输

两台ECS之间传输文件可以通过内网传输,传输语句为:scp -r root@数据所在内网IP地址:/拷贝数据目录 /拷贝过来存放的目录执行后会提示输入数据所在服务器的密码...

关于在linux下php扩展sqlsrv查询数据不正常,错误01004

前段时间将一个老php项目从windows移至centos7中,安装sqlsrv扩展等都挺顺利,安装过程写在另一篇文章中了。问题描述:原先在windows中没哟问题,部署到linux新服务器中出现一个...

阿里云挂载磁盘以及安装宝塔面板

阿里云挂载磁盘以及安装宝塔面板

阿里云挂载云盘第一步在阿里云管理员后台,云盘管理中心挂载好云盘在哪个服务器上面。登录 ECS管理控制台在左侧导航栏中,选择 存储 > 云盘选择地域。找到 待挂载&n...

阿里云服务器安装Alibaba Cloud 3系统和centos系统后虚拟内存问题

Alibaba Cloud系统安装后默认是没有设置swap分区的,我在安装系统后然后安装mysql数据库,一直出现服务器卡死,安装失败。后面发现我的服务器1核2G,内存不够跑满了,用free -m命令...

centos7安装JDK步骤

卸载旧版本的JDK:   1. 确定JDK的版本: rpm -qa | grep jdk 2.卸载JDK yum -y remove jdk1.8-1.8.0_...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。