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

Ubuntu系统PHP 8.2已启用bcmath扩展,但Drupal 10 Commerce仍报错

问题

我在Ubuntu系统中已为PHP 8.2启用bcmath扩展,但Drupal 10的Commerce模块仍提示错误。

本地验证信息

$ php -i | grep -i bcmath
PHP Warning:  Module "gd" is already loaded in Unknown on line 0
/etc/php/8.2/cli/conf.d/20-bcmath.ini,
bcmath
BCMath support => enabled
bcmath.scale => 1 => 1

当前Docker Compose配置

version: '3.8'

services:
  mysql:
    image: mysql:8.0.33
    environment:
      - MYSQL_ROOT_PASSWORD=root
    volumes:
      - mysql_data:/var/lib/mysql
    restart: always
  drupal:
    image: drupal:10
    ports:
      - 8080:80
    volumes:
      - ./web:/var/www/html
      - ./vendor:/opt/drupal/vendor
      - ./composer.json:/opt/drupal/composer.json
      - ./composer.lock:/opt/drupal/composer.lock
    links:
      - mysql
    environment:
      - MYSQL_USERNAME=root
      - MYSQL_PASSWORD=root
    restart: always

volumes:
  mysql_data:

回答

你本地Ubuntu的PHP CLI确实启用了bcmath,但Docker容器里的Drupal运行在独立的PHP环境中,和本地PHP完全隔离,官方drupal:10镜像默认没有预装bcmath扩展,这就是Commerce模块报错的核心原因。

持久化解决方法(推荐)

  1. 在项目根目录创建Dockerfile,内容如下:
FROM drupal:10

# 安装bcmath扩展
RUN docker-php-ext-install bcmath
  1. 修改docker-compose.yml中的drupal服务,将image: drupal:10替换为build: .,让Compose使用自定义镜像构建:
drupal:
  build: .  # 替换原image字段
  ports:
    - 8080:80
  volumes:
    - ./web:/var/www/html
    - ./vendor:/opt/drupal/vendor
    - ./composer.json:/opt/drupal/composer.json
    - ./composer.lock:/opt/drupal/composer.lock
  links:
    - mysql
  environment:
    - MYSQL_USERNAME=root
    - MYSQL_PASSWORD=root
  restart: always
  1. 重新构建并启动容器:
docker-compose down
docker-compose up --build -d
  1. 验证容器内PHP是否已启用bcmath:
# 先通过docker ps查看drupal容器名称,替换下面的[容器名]
docker exec -it [容器名] php -i | grep -i bcmath

临时测试方案(重启容器后失效)

如果只是临时验证,可以直接进入容器安装扩展:

# 进入容器
docker exec -it [容器名] bash
# 安装依赖并编译bcmath
apt-get update && apt-get install -y libbcmath-dev
docker-php-ext-install bcmath
# 重启Apache生效
apache2ctl restart

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 18:05:33