Apache httpd 2.4.29, собранный с OpenSSL 1.0.2l, ALPN и поддержкой http2 для Red Hat Enterprise Linux и CentOS

В репозиторий добавлен Apache httpd 2.4.29 с поддержкой http2 для Red Hat Enterprise Linux и CentOS. Mod_ssl собран статически с OpenSSL 1.0.2l. Ссылки:

Заметим, что модуль Http2 Apache httpd с версии 2.4.27 не поддерживает prefork mpm. Ранее, в версии 2.4.26, мы наблюдали крахи с prefork и решили не выкладывать наши билды из-за них.
Если вам нужен модуль mod_http2, отключите prefork mpm, включите worker mpm в /etc/httpd/conf.modules.d/00-mpm.conf

Это действите уже сделано в файле, который мы поставляем в пакете. Если вы обновляете вашу инсталляцию, обновите файл.

Для работы с SELinux установите следующий boolean:

setsebool -P httpd_execmem=1

Для инсталляции проще воспользоваться нашим репозиторием. Обращаю ваше внимание на тот факт, что в зависимостях пакета присутствуют apr-util 1.5.0+ и libnghttp, которые я бы рекомендовал взять из репозитория EPEL. Таким образом, для использования Apache HTTPd проще всего подключить репозиторий EPEL:

yum install -y epel-release

Apache httpd 2.4.29, собранный с OpenSSL 1.0.2l, ALPN и поддержкой http2 для Red Hat Enterprise Linux и CentOS: 7 комментариев

  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:
    LD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32

    So for Apache I’ve created an httpd.service.d/override.conf with:
    [Service]
    Environment=OPTIONS=-DLD_LIBRARY_PATH=/opt/remi/php56/root/usr/lib64:/home/db2inst1/sqllib/lib64:/home/db2inst1/sqllib/lib64/gskit:/home/db2inst1/sqllib/lib32

    # 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…

        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.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *