Dockerfile 修改,連線 sqlserver

風中絮發表於2021-07-30

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 協議》,轉載必須註明作者和本文連結

相關文章