Dockerfile 修改,连接 sqlserver

Dockerfile

# 连接 sqlserver
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
    && curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get update \
    && ACCEPT_EULA=Y apt-get install -y msodbcsql17 \
    && ACCEPT_EULA=Y apt-get install -y mssql-tools \
    && echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc \
    && /bin/bash -c "source ~/.bashrc" \
    && apt-get install -y unixodbc-dev \
    && pecl install sqlsrv \
    && pecl install pdo_sqlsrv

php.ini

extension=sqlsrv.so
extension=pdo_sqlsrv.so

说明

先用 php artisan sail:publish 发布文件,在 8.0 或者 7.4 文件夹中添加上面的内容, 接着sail build --no-cache 重新构建容器

问题

连接 sqlserver 会遇到这个问题

[Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol]Database Connection Error

/etc/ssl/openssl.cnf 文件中第一行添加

openssl_conf = default_conf

文件结尾添加,然后重启容器

[default_conf]
ssl_conf = ssl_sect

[ssl_sect]
system_default = system_default_sect

[system_default_sect]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=1

参考网址

ubuntu下php 连接 sqlserver
安装 Microsoft ODBC Driver for SQL Server (Linux)
SSL Provider

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
Epona

👍 赞

2年前 评论
风中絮 (楼主) 2年前

只能推荐一下这个库了 解放自己

github.com/mlocati/docker-php-exte...

2年前 评论
风中絮 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!