HTTP/2 and Apache error log "The mpm module (prefork.c) is not supported by mod_http2"

OS type and version Ubuntu 20.04
Webmin version 2.013
Virtualmin version 7.5 Pro
Related packages Apache Modules

A while ago I enabled HTTP/2 and thought it worked, until I saw this in the Apache error log file:

[Fri Mar 17 12:53:15.370636 2023] [http2:warn] [pid 42376] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive.

There is a wealth of information on the internet regarding MDM and basically it appears MDM-prefork is incompatible with Apache and HTTP2.

What’s not entirely clear, considering I want to run PHP-FPM and the “latest PHP”, what to choose below?


Any tips?

Can I deselect mdm_prefork and select both mdm_event and mdm_worker?

I found this good reference but still unsure after reading many of the posts:,

Disable mpm_prefork and enable mpm_event for http/2 protocol.

Thanks @tpnsolutions so much for the reply. I get your point that you prefer event to worker. However, not so easy on our legacy server.

You can enable a new mdm method in the Webmin UI but it just stays on prefork.

Upon closer inspection it appears the problem has to do with a dependency chain which can be seen by running this from the command line:

a2enmod php8.2
Considering dependency mpm_prefork for php8.2:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.2:
Enabling module php8.2.

So essentially I need to understand what else to disable and enable and I have to find legacy sites that are using these things so that I can migrate them to the the new thing.,

You should be able to run:

a2dismod mpm_prefork


a2enmod mpm_event

Why are you running:

a2enmod php8.2

That seems to imply that you are enabling “mod_php” which you should NEVER do.

That seems to imply that you are enabling “mod_php” which you should NEVER do.

Aha thanks! I wasn’t sure that a2enmod php8.2 was mod_php but now I know.

This is a legacy server. Some of the sites are ten+ years old. When I disable mod_php things start falling over on a grand scale, and I believe the last time I check it was something like redundant php_admin_flag flags or something lying around in a few of the approximately 300 sites on the server.

So I’ll do this at 3AM. I’ve remove mod_php again, and see what falls over, and one by one eliminate the sites.

Thanks again, this is progress.

One last question, do you agree with this as a really good configuration:

  • HTTP/2
  • mdm_event

Considering a server with about 300 sites, but only about 15 or so being regularly accessed?,

That looks about right.

Remember, you may need to make adjustments to some sites if they are used to using mod_php and/or an older version of PHP since newer versions of PHP do have some breaking changes.

So be sure to audit each site, and check the error logs either at:


or if enabled:


*** swap “” in the first example with the actual domain, and “” in the second example with the proper domain or username depending on how your environment is setup ***

As it’s apache you may have loads of mod_php directives to remove from the apache config files. It may be worth checking them for mod_php directives

This topic was automatically closed 8 days after the last reply. New replies are no longer allowed.