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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
Epona

👍 赞

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

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

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

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

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