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: 3 комментария

  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…

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

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