• Apache configuration question - MPM modules

    From Lars Poulsen@lars@beagle-ears.com to comp.os.linux.misc on Sat Feb 7 21:22:21 2026
    From Newsgroup: comp.os.linux.misc

    I recently reinstalled Fedora 43 on my Linux workstation, because I got
    a new system hardware unit.

    My previous system was at least 10 years old and had survived numerous
    in-place version upgrades.

    After re-install, the httpd service complains on /var/log/error_log
    that because I have the single-threaded MPM module "mpm_prefork"
    installed, it wil not be able to serve HTTP 2.0.

    [Fri Feb 06 06:04:49.941831 2026] [http2:warn] [pid 1684:tid 1684]
    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.

    I vaguely remember a long time ago having to select among 2 or 3
    different MPM modules, using configuration statements in httpd.conf,
    but looking at the httpd.conf file that I carried over from the old
    system, I do not see any such statements.

    The manual at https://httpd.apache.org/docs/current/mpm.html says
    that on a unix-like system, mpm_event will be installed by
    default.

    How do I resolve this problem?
    --
    Lars Poulsen - an old geek in Santa Barbara, California
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.linux.misc on Sat Feb 7 21:59:16 2026
    From Newsgroup: comp.os.linux.misc

    On Sat, 7 Feb 2026 21:22:21 -0000 (UTC), Lars Poulsen wrote:

    I vaguely remember a long time ago having to select among 2 or 3
    different MPM modules, using configuration statements in httpd.conf,
    but looking at the httpd.conf file that I carried over from the old
    system, I do not see any such statements.

    Configuration of module loads (similar to virtual sites) is not done
    via httpd.conf (or the files it includes), it is done by symlinking
    relevant entries from mods-available into mods-enabled. Here are the
    MPM choices available on my current machine:

    root@theon:~ # ls -l /etc/apache2/mods-available/mpm*
    -rw-r--r-- 1 root root 613 Apr 13 2023 /etc/apache2/mods-available/mpm_event.conf
    -rw-r--r-- 1 root root 106 Jun 9 2022 /etc/apache2/mods-available/mpm_event.load
    -rw-r--r-- 1 root root 500 Apr 13 2023 /etc/apache2/mods-available/mpm_prefork.conf
    -rw-r--r-- 1 root root 108 Jun 9 2022 /etc/apache2/mods-available/mpm_prefork.load
    -rw-r--r-- 1 root root 780 Apr 13 2023 /etc/apache2/mods-available/mpm_worker.conf
    -rw-r--r-- 1 root root 107 Jun 9 2022 /etc/apache2/mods-available/mpm_worker.load

    And which one is enabled:

    root@theon:~ # ls -l /etc/apache2/mods-enabled/mpm*
    lrwxrwxrwx 1 root root 34 May 26 2023 /etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
    lrwxrwxrwx 1 root root 34 May 26 2023 /etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Lars Poulsen@lars@beagle-ears.com to comp.os.linux.misc on Sun Feb 8 14:03:10 2026
    From Newsgroup: comp.os.linux.misc

    On 2026-02-07, Lawrence DrCOOliveiro <ldo@nz.invalid> wrote:
    On Sat, 7 Feb 2026 21:22:21 -0000 (UTC), Lars Poulsen wrote:
    I vaguely remember a long time ago having to select among 2 or 3
    different MPM modules, using configuration statements in httpd.conf,
    but looking at the httpd.conf file that I carried over from the old
    system, I do not see any such statements.

    Configuration of module loads (similar to virtual sites) is not done
    via httpd.conf (or the files it includes), it is done by symlinking
    relevant entries from mods-available into mods-enabled. Here are the
    MPM choices available on my current machine:

    root@theon:~ # ls -l /etc/apache2/mods-available/mpm*
    -rw-r--r-- 1 root root 613 Apr 13 2023 /etc/apache2/mods-available/mpm_event.conf
    -rw-r--r-- 1 root root 106 Jun 9 2022 /etc/apache2/mods-available/mpm_event.load
    -rw-r--r-- 1 root root 500 Apr 13 2023 /etc/apache2/mods-available/mpm_prefork.conf
    -rw-r--r-- 1 root root 108 Jun 9 2022 /etc/apache2/mods-available/mpm_prefork.load
    -rw-r--r-- 1 root root 780 Apr 13 2023 /etc/apache2/mods-available/mpm_worker.conf
    -rw-r--r-- 1 root root 107 Jun 9 2022 /etc/apache2/mods-available/mpm_worker.load

    And which one is enabled:

    root@theon:~ # ls -l /etc/apache2/mods-enabled/mpm*
    lrwxrwxrwx 1 root root 34 May 26 2023 /etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
    lrwxrwxrwx 1 root root 34 May 26 2023 /etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load

    This looks like it is VERY distribution dependent. Which incidentally is
    a good reason for most of us to stick with the distribution that we know
    well. Which distribution are you using?

    It also highlights how complex these configurations can be, and how hard
    it can be to find the relevant documentattion. From the various articles
    that Edge AI dug up for me, it appears that Ubuntu (or is it all the way
    back at Debian?) has a set of utility programs that manipulates the configuration files, which do not exist in Fedora. So there will be
    conflicts in the documentation between Apache documentation, Redhat documentation and Ubuntu documentation.

    It turns out that on Fedora, there is no /etc/apache2/ configuration
    tree. The corresponding tree is under /etc/httpd/.

    The main configuration file is /etc/httpd/conf/httpd.conf, which
    includes
    /etc/httpd/conf.modules.d/*
    near the top and
    /etc/httpd/conf.d/*
    /etc/httpd/conf/httpd-le-ssl.conf
    near the end.

    I had not realized that there were two different directories of conf.*.d
    files; back when I originally worked actively on this, the LoadModule statements were in a long list of files in httpd.conf

    But while your information was wrong for my system, it was still
    helpful. After reading your post, I found
    /etc/httpd/conf.modules.d/00-mpm.conf
    which contains:
    ----------------------------
    # Select the MPM module which should be used by uncommenting exactly
    # one of the following LoadModule lines. See the httpd.conf(5) man
    # page for more information on changing the MPM.

    # prefork MPM: Implements a non-threaded, pre-forking web server
    # See: http://httpd.apache.org/docs/2.4/mod/prefork.html
    #
    # NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
    # boolean should be enabled, to allow graceful stop/shutdown.
    #
    LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

    # worker MPM: Multi-Processing Module implementing a hybrid
    # multi-threaded multi-process web server
    # See: http://httpd.apache.org/docs/2.4/mod/worker.html
    #
    #LoadModule mpm_worker_module modules/mod_mpm_worker.so

    # event MPM: A variant of the worker MPM with the goal of consuming
    # threads only for connections with active processing
    # See: http://httpd.apache.org/docs/2.4/mod/event.html
    #
    #LoadModule mpm_event_module modules/mod_mpm_event.so
    ----------------------------

    So when they deprecated mpm_prefork, they still left it as the default.
    I am now changing this.

    Crossposted to alt.unix.geeks, where it will be easier for me to find later. There are other questions there, which were less on-topic here.
    --
    Lars Poulsen - an old geek in Santa Barbara, California
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Lars Poulsen@lars@beagle-ears.com to comp.os.linux.misc,alt.unix.geeks on Sun Feb 8 14:16:46 2026
    From Newsgroup: comp.os.linux.misc

    [Oops, forgot to set the cross-post]

    On 2026-02-08, Lars Poulsen <lars@beagle-ears.com> wrote:
    On 2026-02-07, Lawrence DrCOOliveiro <ldo@nz.invalid> wrote:
    On Sat, 7 Feb 2026 21:22:21 -0000 (UTC), Lars Poulsen wrote:
    I vaguely remember a long time ago having to select among 2 or 3
    different MPM modules, using configuration statements in httpd.conf,
    but looking at the httpd.conf file that I carried over from the old
    system, I do not see any such statements.

    Configuration of module loads (similar to virtual sites) is not done
    via httpd.conf (or the files it includes), it is done by symlinking
    relevant entries from mods-available into mods-enabled. Here are the
    MPM choices available on my current machine:

    root@theon:~ # ls -l /etc/apache2/mods-available/mpm*
    -rw-r--r-- 1 root root 613 Apr 13 2023 /etc/apache2/mods-available/mpm_event.conf
    -rw-r--r-- 1 root root 106 Jun 9 2022 /etc/apache2/mods-available/mpm_event.load
    -rw-r--r-- 1 root root 500 Apr 13 2023 /etc/apache2/mods-available/mpm_prefork.conf
    -rw-r--r-- 1 root root 108 Jun 9 2022 /etc/apache2/mods-available/mpm_prefork.load
    -rw-r--r-- 1 root root 780 Apr 13 2023 /etc/apache2/mods-available/mpm_worker.conf
    -rw-r--r-- 1 root root 107 Jun 9 2022 /etc/apache2/mods-available/mpm_worker.load

    And which one is enabled:

    root@theon:~ # ls -l /etc/apache2/mods-enabled/mpm*
    lrwxrwxrwx 1 root root 34 May 26 2023 /etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
    lrwxrwxrwx 1 root root 34 May 26 2023 /etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load

    This looks like it is VERY distribution dependent. Which incidentally is
    a good reason for most of us to stick with the distribution that we know well. Which distribution are you using?

    It also highlights how complex these configurations can be, and how hard
    it can be to find the relevant documentattion. From the various articles
    that Edge AI dug up for me, it appears that Ubuntu (or is it all the way
    back at Debian?) has a set of utility programs that manipulates the configuration files, which do not exist in Fedora. So there will be
    conflicts in the documentation between Apache documentation, Redhat documentation and Ubuntu documentation.

    It turns out that on Fedora, there is no /etc/apache2/ configuration
    tree. The corresponding tree is under /etc/httpd/.

    The main configuration file is /etc/httpd/conf/httpd.conf, which
    includes
    /etc/httpd/conf.modules.d/*
    near the top and
    /etc/httpd/conf.d/*
    /etc/httpd/conf/httpd-le-ssl.conf
    near the end.

    I had not realized that there were two different directories of conf.*.d files; back when I originally worked actively on this, the LoadModule statements were in a long list of files in httpd.conf

    But while your information was wrong for my system, it was still
    helpful. After reading your post, I found
    /etc/httpd/conf.modules.d/00-mpm.conf
    which contains:
    ----------------------------
    # Select the MPM module which should be used by uncommenting exactly
    # one of the following LoadModule lines. See the httpd.conf(5) man
    # page for more information on changing the MPM.

    # prefork MPM: Implements a non-threaded, pre-forking web server
    # See: http://httpd.apache.org/docs/2.4/mod/prefork.html
    #
    # NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
    # boolean should be enabled, to allow graceful stop/shutdown.
    #
    LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

    # worker MPM: Multi-Processing Module implementing a hybrid
    # multi-threaded multi-process web server
    # See: http://httpd.apache.org/docs/2.4/mod/worker.html
    #
    #LoadModule mpm_worker_module modules/mod_mpm_worker.so

    # event MPM: A variant of the worker MPM with the goal of consuming
    # threads only for connections with active processing
    # See: http://httpd.apache.org/docs/2.4/mod/event.html
    #
    #LoadModule mpm_event_module modules/mod_mpm_event.so
    ----------------------------

    So when they deprecated mpm_prefork, they still left it as the default.
    I am now changing this.

    Crossposted to alt.unix.geeks, where it will be easier for me to find later. There are other questions there, which were less on-topic here.
    --
    Lars Poulsen - an old geek in Santa Barbara, California
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From jayjwa@jayjwa@atr2.ath.cx.invalid to comp.os.linux.misc on Sun Feb 8 16:27:46 2026
    From Newsgroup: comp.os.linux.misc

    Lars Poulsen <lars@beagle-ears.com> writes:

    I vaguely remember a long time ago having to select among 2 or 3
    different MPM modules, using configuration statements in httpd.conf,
    but looking at the httpd.conf file that I carried over from the old
    system, I do not see any such statements.
    "Prefork" was the older one. You select them in the configs, wherever
    they live, like so:

    LoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.so
    #LoadModule mpm_prefork_module lib64/httpd/modules/mod_mpm_prefork.so #LoadModule mpm_worker_module lib64/httpd/modules/mod_mpm_worker.so

    Check in /etc/{apache,httpd,apache2} and likewise. 'locate
    mod_mpm_event.so' will likely show you where the modules live. Slackware
    is very close to upstream, so on my system they live in /usr/lib64/httpd/modules/
    Your distro probably does this differently. On Slackware, most of the
    action happens in httpd.conf .

    You also have to enable the http2 module, which might be a different
    package all together. I'm assuming you want HTTP2.

    LoadModule http2_module lib64/httpd/modules/mod_http2.so
    <IfModule http2_module>
    Protocols h2 h2c http/1.1
    </IfModule>
    --
    PGP Key ID: 781C A3E2 C6ED 70A6 B356 7AF5 B510 542E D460 5CAE
    "The Internet should always be the Wild West!"
    --- Synchronet 3.21b-Linux NewsLink 1.2