暫定。
PHPがOpenSSL1.1.1系にまだ対応していないようでビルド時にこけるので
当方ではRPM版OpenSSLとの分離としてOpenSSL1.1.1系は従来通り/usr/local/ssl以下へ配置する。
OpenSSL1.1.1系をデフォルトでインストールする場合は
LDFLAGS="-L/usr/local/lib64"
を指定する。
APR/APUが入ってないので別途落とし、httpdソースのsrclibへ展開する。
今のところ必要なモジュール類が定まらないので暫定的に全部入りにして、設定ファイルで制御する。
cp apr-1.6.x.tar.gz httpd-2.4.x/srclib cp apr-util-1.6.x.tar.gz httpd-2.4.x/srclib cd httpd-2.4.x/srclib tar zxf apr-1.6.x.tar.gz tar zxf apr-util-1.6.x.tar.gz mv apr-1.6.x apr mv apr-util-1.6.x apr-util ./configure --enable-http2 \ --with-nghttp2=/usr/local \ --enable-brotli \ --with-brotli=/usr/local \ --enable-pie \ --enable-modules=all \ --with-ssl=/usr/local/ssl \ --with-included-apr \ --enable-mpms-shared=all \ --enable-threads \ --with-openssl=/usr/local/ssl \ --with-crypto --with-included-aprで展開したAPR/APUを使用する。 --enable-threads はAPR用オプション。 --with-openssl=/usr/local/ssl 以下はAPU用オプション。 --with-openssl=/usr/local/ssl と --with-crypto は --enable-session-crypto に必要で、1セットで指定し WARNING: Your APR does not include SSL/EVP support. を回避する。
Apache2.5から対応のようで、現状別途ビルドする必要がある。
yum -y install systemd-devel
cd /usr/local/src/httpd-2.4.x/modules/arch/unix wget https://raw.githubusercontent.com/apache/httpd/trunk/modules/arch/unix/mod_systemd.c -O mod_systemd.c libtool \ --silent \ --mode=compile gcc -std=gnu99 -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong \ --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_LARGEFILE64_SOURCE -DLINUX -D_REENTRANT -D_GNU_SOURCE \ -pthread -I/usr/local/apache2/include -I/usr/local/apr/include/apr-1 -c -o mod_systemd.lo mod_systemd.c && touch mod_systemd.slo libtool \ --silent \ --mode=link gcc -std=gnu99 -Wl,-z,relro,-z,now,-L/usr/lib64 -o mod_systemd.la -rpath /usr/local/apache2/modules -module -avoid-version mod_systemd.lo libtool \ --silent \ --mode=link gcc -std=gnu99 -Wl,-z,relro,-z,now,-L/usr/lib64 -o mod_systemd.la -rpath /usr/local/apache2/modules -module -avoid-version mod_systemd.lo -lsystemd /usr/local/apache2/bin/apxs -i -a -n systemd mod_systemd.la
cat <<EOT > /etc/systemd/system/httpd2.service [Unit] Description=The Apache HTTP Server Source Build After=network.target remote-fs.target nss-lookup.target Documentation=man:httpd(8) Documentation=man:apachectl(8) [Service] Type=notify PIDFile=/usr/local/apache2/logs/httpd.pid ExecStart=/usr/local/apache2/bin/httpd -DFOREGROUND ExecReload=/usr/local/apache2/bin/httpd -k graceful ExecStop=/bin/kill -WINCH \$\{MAINPID\} KillSignal=SIGCONT PrivateTmp=true [Install] WantedBy=multi-user.target EOT
/usr/bin/systemctl daemon-reload /usr/bin/systemctl enable httpd2