php - 未捕获的异常。使用 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
解决方案
推荐阅读
- reactjs - 如何为托管在一个 Azure 应用服务中的多个应用程序添加重写规则
- .net - 所有文本的正则表达式公式,包括 HTML 标签内,但不在“a”标签中
- c# - “没有足够的权限访问:GET-members /emailAddress” - C#、RestSharp、Postman、LinkedIn API
- javascript - npm t 和 npm run test 的区别
- laravel - GET http://localhost:6001/socket.io/?EIO=3&transport=polling&t=MloS95c net::ERR_CONNECTION_REFUSED
- unity3d - Unity3D,无法单击带有画布组件的面板上的按钮
- python - 为什么我的 POST 在获取值后不起作用
- java - 为什么java显示MAXRAM为128gb
- html - 试图通过过渡将菜单项隐藏在屏幕外,但它们却倒塌了?
- javascript - 我的 jQuery 点击事件正在循环并输出奇怪的结果