服务器环境:
centos7 + nginx + php7.2
以下步骤是在已经安装了lnmp环境下的服务器操作
若没环境请先安装php和nginx
若要安装 PHP 7.3 或 7.4,请使用以下命令将 7.2 替换为 7.3 或 7.4。
配置步骤:
sudo su
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel
sudo pecl config-set php_ini /etc/php/7.2/fpm/php.ini
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.2/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7./mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 7.2 sqlsrv pdo_sqlsrv
如果系统中只有一个 PHP 版本,则可以将最后一个步骤简化为 phpenmod sqlsrv pdo_sqlsrv。
验证 sqlsrv.ini 和 pdo_sqlsrv.ini 是否位于 /etc/php/7.4/fpm/conf.d/:
ls /etc/php/7.4/fpm/conf.d/*sqlsrv.ini
重新启动 PHP-FPM 服务:
sudo systemctl restart php-fpm
以上操作完之后就可以链接sqlserver了。
连接sqlserver测试代码:
$serverName = "192.168.1.111\\sqlexpress, 1433"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"数据库名", "UID"=>"用户名", "PWD"=>"密码", "CharacterSet" => "UTF-8");
//CharacterSet设置为UTF-8,不设置可能会遇到中文数据无法读取的问题。
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
$sql = "select * from 数据表";
$result = sqlsrv_query($conn, $sql);
if($result === false) {
die(print_r(sqlsrv_errors(), true));
}
#Fetching Data by array
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
print_r($row);
}
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
另外提供一种手动下载驱动程序的方法,可替代上面第二步:
驱动程序下载地址https://github.com/Microsoft/msphpsql/releases/tag/v5.6.1
选择对应版本,我的是centos7-7.2
解压后根据phpinfo中的Thread Safety属性选择对应的文件
若为disabled则为非线性安全
将文件通过sftp软件放到默认php模块目录下
然后修改php.ini配置文件
在动态扩展处加上以下两个扩展
extension=php_sqlsrv_72_nts.so
extension=php_pdo_sqlsrv_72_nts.so
加完之后重启php服务
sudo systemctl restart php-fpm
有问题可在下方留言讨论,或者邮箱联系我,邮箱地址在网站下方。
转载无需和我联系,但请注明来自木点点博客http://www.tu-do.cn/
最新评论