[首发]Linux+PHP7+Azure SQL/MSSQL环境安装

本中文教程国内首发,之前能搜索到的所有的教程都是针对Windows环境或者低版本的MSSQL展开,网络上还没有中文版的针对最新Azure SQL + Linux+PHP方案教程,经过一番苦寻,终于发现微软官方已经针对Linux推出了PHP7+MSSQL的解决方案.

注意:本方案需要 >= PHP7.0。如果是低版本PHP+低版本MSSQL,则请忽略本文,并在网上搜索FreeTDS相关技术。

英文好的,可以直接看 https://github.com/Microsoft/msphpsql

以上GitHub里面的教程,只收录了Ubuntu 和RedHat ,但实际上RedHat 的流程和CentOS差不多,只不过建议使用最新版的CentOS,后文会提到原因。本文教程以GitHub里面没讲到的CentOS为例。

1. 确保先安装好PHP7和相关依赖项

PHP7安装方法网上教程很多,这里不赘述,但必须先安装好。只不过额外要注意的是,必须确保系统已经内置最新版的GCC依赖项(已知CentOS 6内置的GCC 4.4版本太低),且安装好re2c。

$ yum install re2c gcc-c++ gcc

必须安装PEAR和phpize组件

$ yum install  php-pear php-devel

如果环境内置多个PHP版本,则按如下操作,以PEAR为例:

$ cd /usr/local/php-7.0/bin
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar

2.安装必要的unixODBC

新增YUM源

$ curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
$ yum update
$ yum remove unixODBC #to avoid conflicts
$ ACCEPT_EULA=Y yum install msodbcsql mssql-tools 
$ yum install unixODBC-devel

3.安装Apache或者Nginx

网上教程很多,这里不赘述。不知道的看上文GitHub

4. 安装Microsoft PHP Drivers for SQL Server

$ /usr/local/php-7.0/bin/pecl install sqlsrv
$ /usr/local/php-7.0/bin/pecl install pdo_sqlsrv

这里注意,如果环境内置的不是最新版的GCC依赖项(至少v4.6),那么这里编译安装会报出 “-std=c++11”无法识别的错误。

5. 添加Microsoft PHP Drivers for SQL Server 到 php.ini

$ echo "extension= /usr/lib64/php/modules/sqlsrv.so" > /etc/php.d/sqlsrv.ini
$ echo "extension= /usr/lib64/php/modules/pdo_sqlsrv.so" > /etc/php.d/pdo_sqlsrv.ini

6. 重启HTTP服务

7.测试环境代码

<?php
$serverName = "yourServername";
$connectionOptions = array(
    "Database" => "yourDatabase",
    "Uid" => "yourUsername",
    "PWD" => "yourPassword"
);
//Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);
//Select Query
$tsql= "SELECT @@Version as SQL_VERSION";
//Executes the query
$getResults= sqlsrv_query($conn, $tsql);
//Error handling

if ($getResults == FALSE)
    die(FormatErrors(sqlsrv_errors()));
?> 
 <h1> Results : </h1>
 <?php
while ($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) {
    echo ($row['SQL_VERSION']);
    echo ("<br/>");
}
sqlsrv_free_stmt($getResults);
function FormatErrors( $errors )  
{  
    /* Display errors. */  
    echo "Error information: <br/>";  

    foreach ( $errors as $error )  
    {  
        echo "SQLSTATE: ".$error['SQLSTATE']."<br/>";  
        echo "Code: ".$error['code']."<br/>";  
        echo "Message: ".$error['message']."<br/>";  
    }  
}  
?>

结语:

到此,如果仍有问题,则只能去看看微软GitHub里面有没有新版本或者更详细说明了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值