今の作り方


本体

暫定。

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. 

を回避する。

systemd対応

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

トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-26 (月) 11:25:46