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

Apple M1上运行Bitnami Moodle容器失败:无法创建mpm-accept互斥锁

解决Apple M1设备上Bitnami Moodle容器Apache启动的Mutex错误

问题重现

在Apple M1设备上运行Bitnami Moodle容器(指定platform: linux/amd64)时,Apache启动报错:

(95)Operation not supported: AH00023: Couldn't create the mpm-accept mutex

以下是几个可行的解决方法:


方法1:调整Apache Mutex配置的加载顺序

Bitnami的Apache配置会在httpd.conf之后加载MPM相关配置,直接追加的Mutex posixsem可能被覆盖。修改Dockerfile,将配置写入MPM专属配置文件:

FROM bitnami/moodle:4
# 根据Apache实际使用的MPM类型选择文件,常见为prefork或event
RUN echo 'Mutex posixsem' >> /opt/bitnami/apache2/conf/extra/httpd-mpm.conf

重新构建并启动容器:

docker-compose build --no-cache
docker-compose up

方法2:启用Docker Desktop的Rosetta模拟

M1设备默认用QEMU模拟amd64环境,部分系统调用支持不完善。开启Rosetta可提升兼容性:

  1. 打开Docker Desktop,进入Settings -> Features in development
  2. 勾选Use Rosetta for x86/amd64 emulation
  3. 重启Docker Desktop后,重新构建启动容器

方法3:使用Bitnami官方arm64镜像

Bitnami已提供Moodle的arm64架构镜像,无需强制amd64模拟,修改docker-compose.yml去掉platform配置:

moodle:
  build:
    context: .
    dockerfile: ./Dockerfile
  image: bitnami/moodle:4

同时简化Dockerfile(无需再添加Mutex配置):

FROM bitnami/moodle:4
# 有其他自定义需求再添加对应命令

方法4:切换Apache的MPM模式

尝试将MPM模式切换为worker,部分环境下兼容性更好:

FROM bitnami/moodle:4
# 禁用默认prefork MPM,启用worker MPM
RUN sed -i 's/LoadModule mpm_prefork_module/LoadModule mpm_worker_module/' /opt/bitnami/apache2/conf/httpd.conf
RUN echo 'Mutex posixsem' >> /opt/bitnami/apache2/conf/httpd.conf

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 00:09:31