linux php pdo sqlsrv,php linux环境下安装sqlsrv

2020-08-31

399 次阅读

> 以下是linux环境下 快捷安装 sqlsrv 拓展教程,还有安装过程中遇到的一些奇葩坑

## 第一步

使用pecl安装sqlsrv拓展

```code

sudo pecl install pdo_sqlsrv

sudo pecl install sqlsrv

```

##### 期间你可能会遇到这个报错

```code

WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to

```

解决办法

```bash

sudo pecl channel-update pecl.php.net

```

##### 甚至你执行上一句命令的时候还会蹦出此错误

```code

Read-only file system

```

解决办法

```bash

sudo mount -uw /

```

## 第二步 修改php配置文件

把下面这两坨配置信息复制到php.ini最后一行保存即可

```code

extension=sqlsrv.so

extension=pdo_sqlsrv.so

```

### 第三步 安装sqlsrv odbc

详细见 [微软官方文档](https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu?rtc=1 "微软官方文档")

```bash

sudo su

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#Download appropriate package for the OS version

#Choose only ONE of the following, corresponding to your OS version

#Ubuntu 16.04

curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 18.04

curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 19.10

curl https://packages.microsoft.com/config/ubuntu/19.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit

sudo apt-get update

sudo ACCEPT_EULA=Y apt-get install msodbcsql17

# optional: for bcp and sqlcmd

sudo ACCEPT_EULA=Y apt-get 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 apt-get install unixodbc-dev

```

## 链接sqlsrv时可能会遇到到一些奇葩问题

##### sqlserver目标版本tls版本不支持

具体表现为此报错

```code

sqlsrv error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol

```

解决办法:拉高本地openssl版本

```bash

RUN apt-get update -yqq \

&& apt-get install -y --no-install-recommends openssl \

&& sed -i 's,^\(MinProtocol[ ]*=\).*,\1'TLSv1.0',g' /etc/ssl/openssl.cnf \

&& sed -i 's,^\(CipherString[ ]*=\).*,\1'DEFAULT@SECLEVEL=1',g' /etc/ssl/openssl.cnf\

&& rm -rf /var/lib/apt/lists/*

```

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值