首页 > 解决方案 > 未捕获的异常。使用 sql server 和基本映像 php:7.3-apache 在 docker 容器中找不到驱动程序

问题描述

我的 docker 文件正在成功构建,但在登录时,收到此错误“未捕获的异常。找不到驱动程序”。

应用程序正在使用 php 的 PDO 扩展来连接 sql server。

FROM php:7.3-apache

# Env variables
ENV ACCEPT_EULA=y

# Install selected extensions and other stuff
RUN apt-get update \
    && apt-get -y --no-install-recommends install apt-utils libxml2-dev gnupg apt-transport-https \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

# Install git
RUN apt-get update \
    && apt-get -y install git \
    && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*

#Install ODBC Driver
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
    && curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get update

# Install sqlsrv
RUN apt-get update
RUN apt-get install -y wget
RUN wget http://ftp.br.debian.org/debian/pool/main/g/glibc/multiarch-support_2.24-11+deb9u4_amd64.deb && \
    dpkg -i multiarch-support_2.24-11+deb9u4_amd64.deb
RUN apt-get -y install msodbcsql17 unixodbc-dev
RUN pecl install sqlsrv pdo_sqlsrv

# Install webapp extension
RUN apt-get update && \
    apt-get install -y \
    git libzip-dev libicu-dev\
    && docker-php-ext-install zip
RUN docker-php-ext-install intl mysqli pdo pdo_mysql
RUN a2enmod rewrite

COPY php.ini /usr/local/etc/php
COPY . /var/www/html/
EXPOSE 80/tcp
#EXPOSE 443/tcp

我还在我的 php.ini 文件中添加了 sqlsrv 的 pdo 扩展条目

扩展=pdo_sqlsrv.so 扩展=sqlsrv.so

标签: phpsql-serverapachepdodockerfile

解决方案


推荐阅读