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

Docker中从PECL仓库安装扩展报错:不再支持大括号访问数组字符串偏移

报错根因

报错是因为Debian/Ubuntu官方源自带的php-pear包版本老旧,仍使用PHP 8.0已彻底移除的「大括号访问数组/字符串偏移量」语法,导致pecl命令运行时直接抛出致命错误。


解决步骤

方案一:手动升级PEAR/PECL到兼容PHP8的版本(推荐)

在安装php-pear之后、执行pecl install之前,新增命令更新PEAR到最新兼容版本:

RUN pear update-channels && pear upgrade --force pear/pear

升级完成后再执行pecl install sqlsrv pdo_sqlsrv即可正常运行。

方案二:直接用预编译deb包安装扩展(无需使用pecl)

如果不想调整PEAR版本,可以直接安装对应PHP版本的官方预编译扩展包:

  1. 先完成微软ODBC驱动的前置安装步骤
  2. 执行以下命令直接安装扩展:
RUN apt-get install -y php8.0-sqlsrv php8.0-pdo-sqlsrv

额外注意事项

  • 你当前的命令顺序存在错误:apt-get update应该放在所有apt-get install命令之前,避免安装到过期版本的软件包
  • 若使用pecl方式安装扩展,安装完成后需要手动启用扩展,新增如下命令:
RUN docker-php-ext-enable sqlsrv pdo_sqlsrv

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:27:04