Dockerfile:

FROM httpd:2.4.41
COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf
COPY ./key.pem /usr/local/apache2/conf/server.key
COPY ./cert.pem /usr/local/apache2/conf/server.crt
COPY ./sites.conf /usr/local/apache2/conf/extra/httpd-vhosts.conf

由于某些原因,如果添加自己的httpd.conf,则会收到以下错误:
docker run -p 80:80 -p 443:443 test1
AH00534: httpd: Configuration error: No MPM loaded.

奇怪的是,my-httpd.conf使用以下命令直接来自图像本身(未修改):
docker run --rm httpd:2.4.41 cat /usr/local/apache2/conf/httpd.conf > my-httpd.conf

据我所知,我正在使用一个精确的副本覆盖默认的httpd.conf。

万一有任何疑问,如果我的Dockerfile中没有COPY ./my-httpd.conf /usr/local/apache2/conf/httpd.conf,则该镜像可以正常运行。

这怎么可能?

最佳答案

您应该检查LoadModule mpm_event_module modules/mod_mpm_event.so文件中是否未注释httpd.conf。如果是这样,则应将httpd.conf从UTF-16格式转换为UTF-8格式。

关于apache - Docker httpd:配置错误:未加载MPM-仅在使用非默认httpd.conf时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60215357/

10-16 17:47