centos7+php+sqlserver配置方法

hykeda6年前centos1641

这段时间迁移老项目,其中有一个项目使用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方式 加入微软源和安装驱动和上面一样,这里从下载安装开始 

【加入微软的源】

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo

【安装驱动 unixODBC】

yum install msodbcsql mssql-tools unixODBC-devel

【下载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

相关文章

php 用curl 进行数据post给接口,如何将数据存放至body中传递

有个项目,将数据推送至接口文件,代码入下:$headers[]  =  "Accept:application/json";$headers[]  =...

file_get_contents("php://input")的使用方法

$data = file_get_contents("php://input"); php://input 是个可以访问请求的原始数据的只读流。 POST 请求的情况下,最好使用 php:/...

composer使用phpstudy的php环境,如果改变php版本如何处理

        首先安装composer后,先在系统的环境变量中添加php路径,比如之前的路径:C:\zhangsan\...

PHP限制ip以及IP段是否允许访问,以及对ip子网的理解

php 如何限制ip访问:// 判断ip是否被允许 function isIpBlocked($clientIP,$blockedIPs) {   ...

php json_encode输出空白问题

php json_encode输出空白问题

例如这样的一段转json出现空白: echo json_encode(array('error' => '0', 'message' => '没有错误')); var_dump(js...

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

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

发表评论    

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