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

PHP 7.4环境下无法安装sqlsrv驱动,求可行解决方案

解决PHP 7.4下安装sqlsrv驱动的问题

因为最新版的sqlsrv PECL包已要求PHP 8.1+,你需要指定安装兼容PHP 7.4的旧版本驱动,具体解决方案如下:

修改后的Dockerfile

FROM php:7.4-cli as php 

RUN apt-get update -y
RUN apt-get install -y unzip libpq-dev libcurl4-gnutls-dev gnupg2 zlib1g-dev libpng-dev libnss3-dev libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon-x11-0 libxcomposite-dev libxdamage1 libxfixes-dev libxrandr2 libgbm-dev libpangocairo-1.0-0 libcairo2 libasound2
RUN docker-php-ext-install pdo pdo_mysql bcmath gd exif

RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get -y --no-install-recommends install msodbcsql17 unixodbc-dev
# 指定安装兼容PHP7.4的sqlsrv版本
RUN pecl install sqlsrv-5.11.1
RUN pecl install pdo_sqlsrv-5.11.1
RUN docker-php-ext-enable sqlsrv pdo_sqlsrv

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - 
RUN apt-get install -y nodejs
RUN npm install

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /var/www
COPY . .

ENV PORT=9000
ENTRYPOINT [ "Docker/entrypoint.sh" ]

关键修改说明

  • 将原Dockerfile中无版本的pecl install sqlsrv/pecl install pdo_sqlsrv,改为指定sqlsrv-5.11.1和pdo_sqlsrv-5.11.1,这两个版本是官方支持PHP 7.4的最后稳定版本。
  • 取消注释docker-php-ext-enable sqlsrv pdo_sqlsrv,确保驱动安装后被正确启用。

补充提示

  • 若需验证其他兼容版本,可在容器内执行pecl search sqlsrv查看历史版本列表,选择标注支持PHP 7.4的版本即可。
  • 当前安装的msodbcsql17与5.x版本的sqlsrv驱动完全兼容,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:43:39