You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为已安装sqlsrv的现有PHP Docker容器添加pdo-mysql扩展求助

问题对应解决方案

方案1:基于现有已配置SQL Server驱动的镜像快速修复

你当前的报错是两个原因导致的:

  1. docker-compose中同一个服务下配置多个command字段时,仅最后一个会生效,你写的安装autoconf的命令实际没有执行
  2. 官方PHP基础镜像默认没有携带扩展编译所需的工具链,除了autoconf外还缺少make、gcc、g++等依赖

直接修改docker-compose.yaml中MageAPIDev服务的配置,替换原有command字段即可:

command: /bin/sh -c "apt-get update && apt-get install -y autoconf make gcc g++ && docker-php-ext-install pdo pdo_mysql && apache2-foreground"

如果想要固化修改避免每次启动都安装依赖,可以在容器启动并完成扩展安装后,执行docker commit MageAPIDev mc_test:v3将当前容器打包为新镜像,后续直接使用mc_test:v3镜像即可。

方案2:稳定版PHP8+Apache双驱动Dockerfile

如果需要长期复用环境,推荐直接使用以下Dockerfile构建标准镜像,避免依赖丢失、配置不可追溯的问题:

FROM php:8.1-apache-buster

# 安装系统基础依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    gnupg2 \
    ca-certificates \
    curl \
    unixodbc-dev \
    autoconf \
    make \
    gcc \
    g++ \
    && rm -rf /var/lib/apt/lists/*

# 安装SQL Server官方驱动
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
    && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \
    && apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17 \
    && rm -rf /var/lib/apt/lists/*

# 安装PHP扩展
RUN pecl install sqlsrv pdo_sqlsrv \
    && docker-php-ext-enable sqlsrv pdo_sqlsrv \
    && docker-php-ext-install pdo pdo_mysql

# 开启Apache重写模块(适配Magento等PHP程序,可选)
RUN a2enmod rewrite

执行docker build -t php81-apache-sqlsrv-mysql .即可完成镜像构建,内置sqlsrv、pdo_sqlsrv、pdo_mysql所有所需扩展。


内容的提问来源于stack exchange,提问作者Dave Hon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:27:04