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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2
Epona

👍 赞

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

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

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

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

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