docker/httpd: Configuration error: No MPM loaded
After comparing my configuration with latest httpd:2.4 configuration, I found that these new lines needed to be merged into conf/httpd.conf
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
Note to self: When building the derivative httpd docker image, it would probably be better to mod the conf files with sed, than to just COPY in a static file
(edit, thanks delboy1978uk)
The error could be avoided if applied a simple best practice: pin your docker images to a specific version instead of latest
.
After digging the commits of the official httpd image, I found the solution. (maybe this question/answer may help others)
For those who stumble onto this note while looking for a solution, just add
LoadModule mpm_event_module modules/mod_mpm_event.so
intohttpd.conf
above the other LoadModule directives.
(from the comments on the commit #17166574)
So, because I was overriding the file /usr/local/apache2/conf/httpd.conf
without explicitly declare an MPM module, after this commit, my image started to fail.
With this quick fix, everything is fine now.
For the complete correction, add this to your httpd.conf
file (thanks svinther):
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
or, for a more future-proof solution, you could modify the original http.conf file using sed.