Apache httpd 2.4.29 built against OpenSSL 1.1.0.g with http2 and ALPN for Red Hat Enterprise Linux and CentOS

Apache httpd 2.4.29 with http2 (HTTP/2) support for Red Hat Enterprise Linux and CentOS added to repository. Mod_ssl is built statically against OpenSSL 1.0.2l. Links:

Http2 Apache httpd module no longer supports prefork mpm from version 2.4.27, we experienced crashes with it in 2.4.26 and decided to keep builds private. If you need http2 module, please disable prefork mpm and enable worker mpm in /etc/httpd/conf.modules.d/00-mpm.conf.

We already made this in 00-mpm.conf in our packages. If you are updating other vendor installation, please update this file.

For correct work with SELinux please update the following boolean:

setsebool -P httpd_execmem=1

Feel free to use our CentOS/RHEL repository. Please also note that this package depends on apr-util 1.5.0+ and libnghttp, which you can found in EPEL repository. So, the easiest way to use our builds of Apache HTTPd is to add EPEL repository, if you still do not have it: yum install -y epel-release

7 thoughts on “Apache httpd 2.4.29 built against OpenSSL 1.1.0.g with http2 and ALPN for Red Hat Enterprise Linux and CentOS”

  1. Hi

    On a CentOS 7.4.1708 system (up to date) I’m using Apache 2.4.29 from your repo to run a PHP stack with a number of modules (using PHP5.6 from Remi repo). I also use another PHP extension (pdo_ibm.so) to access DB2 from PHP.
    All PHP extensions are working.

    However for pdo_ibm.so I need to have:

    So for Apache I’ve created an httpd.service.d/override.conf with:

    # systemctl daemon-reload,
    # systemctl start httpd

    13864 ? Ss 0:00 /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    13865 ? Sl 0:00 \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    13866 ? Sl 0:00 \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    13867 ? Sl 0:00 \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    13868 ? Sl 0:00 \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    13873 ? Sl 0:00 \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    pdo_ibm.so not happy. Can’t access DB…
    However PHP shows the pdo ibm 1.3.5 is loaded.

    Now if I stop httpd and start it with:
    /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    Process stays in foreground. Can access DB!
    25016 pts/0 S 0:00 | \_ -bash
    14628 pts/0 S+ 0:00 | \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    14630 pts/0 Sl+ 0:00 | \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    14631 pts/0 Sl+ 0:00 | \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    14636 pts/0 Sl+ 0:00 | \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    14637 pts/0 Sl+ 0:00 | \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND
    14643 pts/0 Sl+ 0:00 | \_ /usr/sbin/httpd -DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32 -DFOREGROUND

    In both cases it shows the LD_LIBRARY_PATH but starting with systemctl yields a negative result…

    Not using selinux. Set to permissive/targeted.

    Using the Apache MPM Prefork (which is not the default after installation of your packages).

    I completely fail to see why starting with systemctl causes a problem…

  2. Any plans on releasing newer Apache versions for CentOS? Latest Apache v2.4.33, CodeIT version v2.4.29.

    1. Hi Binyamin,

      Sure we are waiting for 2.4.33 release. Please check httpd official site, latest version is 2.4.29. Other versions are not official releases, 2.4.33 is in voting stage now.

        1. Actually no. They release lot of versions on github for testing, then vote if specific version should either be released or updated. I think 2.4.33 will be release, as soon as all votes are positive. However, this is still not official release.
          Regarding Wikipedia: I checked article changes history and article source. I think that “latest stable version” is simply pulled from github and this is deeply incorrect.
          Also we usually wait for httpd rpm maintainer for Fedora to start their work.

Leave a Reply

Your email address will not be published. Required fields are marked *