Contents
はじめに
WordPress を Apache 2.4 + MySQL 5.7 + PHP7 の環境で構築します。今回はApacheの内容になります。以前導入したときから月日が経ち、導入方法もだいぶ変わっていそうなので結構調査しながら作業を進めました。
今回の目標はApacheのsystemd化とHTTP/2対応、PHP7対応、MPMのpreforkからeventへの変更です。
HTTP/2はほとんどのブラウザがHTTPSでのみ対応しているため、HTTPSにも対応させます。とりあえず自己証明書ですが。MPMの変更はpreforkがHTTP/2で動作しないためですが、PHPをeventで動作させるためにはCGIとして動作させる必要があったりと勝手がわかっていないので、はじめにpreforkで導入し、その後eventに変更を目指して進めます。
用語
今回構築するにあたって理解しておく必要のあるキーワードがあり、いろいろなサイトの情報を参考にさせてもらいました。
HTTP/2って…
HTTP/2を導入するにあたりサーバの要件は…
ALPNって…
Brotli???(なにそれ)
対象バージョン
バージョン | |
Apache | 2.4.29 |
最新バージョンは公式HPで確認してください。
https://httpd.apache.org/download.cgi
サーバ環境(ConoHa VPS)
バージョン | |
CentOS 7 | 7.4.1708 |
OpenSSL | 1.1.0g |
事前準備
Apacheダウンロード
CentOS を最小構成でインストールするとwgetも入っていないので無ければ入れる。
# yum -y install wget
Apacheソース版を使うのでダウンロードしておきます
# cd /usr/local/src # wget http://ftp.riken.jp/net/apache//httpd/httpd-2.4.29.tar.gz
MD5またはPGPによる検証は過去記事があるので参考までに。
コンパイラインストール
# yum install gcc gcc-c++
OpenSSL 1.1.0 インストール
事前にインストールしておきます。以下参考までに。
Nghttp2のインストール
Nghttp2はHTTP/2(mod_http2)のサーバソフトです。日本人のtatsuhiro-tさんという方が開発されたそうです。最新版は以下を確認してください。
https://github.com/nghttp2/nghttp2/releases/
Nghttp2が必要とするライブラリのインストール
# yum -y install libev-devel c-ares-devel
Nghttp2のダウンロード
# cd /usr/local/src/ # wget https://github.com/nghttp2/nghttp2/releases/download/v1.29.0/nghttp2-1.29.0.tar.gz
Nghttp2インストール。事前にインストールしたOpenSSL 1.1.0のディレクトリを指定します。
# tar zxvf nghttp2-1.29.0.tar.gz # cd nghttp2-1.29.0/ # env OPENSSL_CFLAGS="-I/usr/local/openssl/include/" OPENSSL_LIBS="-L/usr/local/openssl/lib -lssl -lcrypto" ./configure --enable-app # make # make install
/usr/local配下にライブラリとコマンドができていることを確認。
# ls -l /usr/local/lib total 1776 -rw-r--r-- 1 root root 1151296 Jan 18 11:15 libnghttp2.a -rwxr-xr-x 1 root root 958 Jan 18 11:15 libnghttp2.la lrwxrwxrwx 1 root root 21 Jan 18 11:15 libnghttp2.so -> libnghttp2.so.14.15.1 lrwxrwxrwx 1 root root 21 Jan 18 11:15 libnghttp2.so.14 -> libnghttp2.so.14.15.1 -rwxr-xr-x 1 root root 655544 Jan 18 11:15 libnghttp2.so.14.15.1 drwxr-xr-x 2 root root 27 Jan 18 11:15 pkgconfig # ls -l /usr/local/bin/ total 22544 -rwxr-xr-x 1 root root 2735304 Jan 18 11:15 h2load -rwxr-xr-x 1 root root 2236448 Jan 18 11:15 nghttp -rwxr-xr-x 1 root root 2375864 Jan 18 11:15 nghttpd -rwxr-xr-x 1 root root 15728584 Jan 18 11:15 nghttpx
Brotliのインストール
最新版は以下を確認。
https://github.com/google/brotli/releases
コンパイルにcmakeを使うためインストール
# yum install cmake
ダウンロード
# cd /usr/local/src # wget https://github.com/google/brotli/archive/v1.0.2.tar.gz
ビルド・インストール
# tar zxvf v1.0.2.tar.gz # cd brotli-1.0.2/ # mkdir out && cd out # ../configure-cmake # make # make test # make install
インストール後、ライブラリがインストールされていることを確認。
# ls -l /usr/local/lib | grep brotli lrwxrwxrwx 1 root root 20 Jan 18 11:26 libbrotlicommon.so -> libbrotlicommon.so.1 lrwxrwxrwx 1 root root 24 Jan 18 11:26 libbrotlicommon.so.1 -> libbrotlicommon.so.1.0.2 -rwxr-xr-x 1 root root 133088 Jan 18 11:26 libbrotlicommon.so.1.0.2 -rw-r--r-- 1 root root 127944 Jan 18 11:26 libbrotlicommon-static.a lrwxrwxrwx 1 root root 17 Jan 18 11:26 libbrotlidec.so -> libbrotlidec.so.1 lrwxrwxrwx 1 root root 21 Jan 18 11:26 libbrotlidec.so.1 -> libbrotlidec.so.1.0.2 -rwxr-xr-x 1 root root 243272 Jan 18 11:26 libbrotlidec.so.1.0.2 -rw-r--r-- 1 root root 317566 Jan 18 11:26 libbrotlidec-static.a lrwxrwxrwx 1 root root 17 Jan 18 11:26 libbrotlienc.so -> libbrotlienc.so.1 lrwxrwxrwx 1 root root 21 Jan 18 11:26 libbrotlienc.so.1 -> libbrotlienc.so.1.0.2 -rwxr-xr-x 1 root root 1529496 Jan 18 11:26 libbrotlienc.so.1.0.2 -rw-r--r-- 1 root root 2081996 Jan 18 11:26 libbrotlienc-static.a
HTTP/2とBrotliのライブラリパス追加
HTTP/2とBrotliのライブラリが/usr/local/libに追加されたのでライブラリのパスを追加する
# vi /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/local/openssl/lib /usr/local/lib # 以下のコマンドで更新 # ldconfig
Apache インストール
PCREをApacheで利用するためのPCRE開発パッケージをインストール。
(Perl Compatible Rebular Expression Library version 5.0)
# yum install pcre-devel
apr-util 1.6.0 のコンパイルに「expat-devel」パッケージインストール
# yum install expat-devel
ダウンロードしたApache のソースコードを展開
# cd /usr/local/src/ # tar zxvf httpd-2.4.29.tar.gz
ディレクトリ移動
# cd /usr/local/src/httpd-2.4.29/srclib/
APR、APR-Util、APR iconvのソースをApacheに含めてビルドするため、/usr/local/src/httpd-2.4.29/srclib/にダウンロード
http://apr.apache.org/download.cgi
# wget http://ftp.riken.jp/net/apache//apr/apr-1.6.3.tar.gz # wget http://ftp.riken.jp/net/apache//apr/apr-util-1.6.1.tar.gz # wget http://ftp.riken.jp/net/apache//apr/apr-iconv-1.2.2.tar.gz
APR、APR-Util、APR iconvのソース展開
# tar zxvf apr-1.6.3.tar.gz && tar zxvf apr-iconv-1.2.2.tar.gz && tar zxvf apr-util-1.6.1.tar.gz
APR、APR-Util、APR iconvのディレクトリ名の変更
# mv apr-1.6.3 apr && mv apr-util-1.6.1 apr-util && mv apr-iconv-1.2.2 apr-iconv
展開前のtar.gzファイルは削除
# rm -f *.tar.gz # ls -l total 16 drwxr-xr-x 27 1001 1001 4096 Oct 18 23:50 apr drwxr-xr-x 10 1001 1001 4096 Oct 18 23:52 apr-iconv drwxr-xr-x 20 1001 1001 4096 Oct 18 23:51 apr-util -rw-r--r-- 1 501 games 121 Feb 11 2005 Makefile.in
configure
# cd /usr/local/src/httpd-2.4.29/ # ./configure \ --prefix=/usr/local/httpd-2.4.29 \ --enable-ssl \ --with-ssl=/usr/local/openssl \ --enable-http2 \ --enable-brotli \ --with-brotli=/usr/local/lib \ --with-included-apr \ --enable-so \ --enable-mods-shared=all \ --enable-mpms-shared=all ...(省略)... configure: summary of build options: Server Version: 2.4.29 Install prefix: /usr/local/httpd-2.4.29 C compiler: gcc -std=gnu99 CFLAGS: -g -O2 -pthread CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE LDFLAGS: LIBS: C preprocessor: gcc -E
make、make install
# make # make install ...(省略)... Installing configuration files mkdir /usr/local/httpd-2.4.29/conf mkdir /usr/local/httpd-2.4.29/conf/extra mkdir /usr/local/httpd-2.4.29/conf/original mkdir /usr/local/httpd-2.4.29/conf/original/extra Installing HTML documents mkdir /usr/local/httpd-2.4.29/htdocs Installing error documents mkdir /usr/local/httpd-2.4.29/error Installing icons mkdir /usr/local/httpd-2.4.29/icons mkdir /usr/local/httpd-2.4.29/logs Installing CGIs mkdir /usr/local/httpd-2.4.29/cgi-bin Installing header files Installing build system files Installing man pages and online manual mkdir /usr/local/httpd-2.4.29/man mkdir /usr/local/httpd-2.4.29/man/man1 mkdir /usr/local/httpd-2.4.29/man/man8 mkdir /usr/local/httpd-2.4.29/manual make[1]: Leaving directory `/usr/local/src/httpd-2.4.29'
SSLサーバ証明書(自己証明書)作成
HTTP/2はほとんどのブラウザがHTTPSでのみ対応とのことなので、今回は自己証明書ですがこのタイミングでやってしまいます。
いつも忘れるので作成されるファイルの内容確認。
ファイル拡張子 | 内容 |
.key | 秘密鍵 |
.csr | 証明書署名要求 |
.crt | サーバ証明書 |
ディレクトリ移動
# cd /usr/local/httpd-2.4.29/conf
秘密鍵作成
# openssl genrsa 2048 > server.key
公開鍵(証明書署名要求)作成("JP"しか入れてない)
# openssl req -new -key server.key > server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
有効期間10年でサーバ証明書作成
# openssl x509 -in server.csr -days 3650 -req -signkey server.key > server.crt Signature ok subject=C = JP, ST = Some-State, O = Internet Widgits Pty Ltd Getting Private key
ApacheのSSL設定ファイルでサーバ証明書と秘密鍵の配置先を確認しておく
# egrep -v "^#|^$" extra/httpd-ssl.conf | grep SSLCertificate SSLCertificateFile "/usr/local/httpd-2.4.29/conf/server.crt" SSLCertificateKeyFile "/usr/local/httpd-2.4.29/conf/server.key"
Apache 初期設定
とりあえず動作確認できるように設定します。
httpd.conf
# ファイルバックアップ # cp /usr/local/httpd-2.4.29/conf/httpd.conf{,.`date +%Y%m%d`} # vi /usr/local/httpd-2.4.29/conf/httpd.conf # --- MPM変更 --- # # eventでPHPを動かすときはfast_cgiが必要なため、今回はpreforkを有効にする #LoadModule mpm_event_module modules/mod_mpm_event.so LoadModule mpm_prefork_module modules/mod_mpm_prefork.so # --- アンコメント --- # LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule brotli_module modules/mod_brotli.so LoadModule ssl_module modules/mod_ssl.so LoadModule http2_module modules/mod_http2.so # --- 変更 --- # User apache Group apache #ServerAdmin you@example.com ServerAdmin xxx@xxxxx.xxx #ServerName www.example.com:80 ServerName xxxxx.xxx:80 #DocumentRoot "/usr/local/httpd-2.4.29/htdocs" DocumentRoot "/var/www/html" #<Directory "/usr/local/httpd-2.4.29/htdocs"> <Directory "/var/www/html"> #Options Indexes FollowSymLinks Options FollowSymLinks # --- 追加 --- # <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> # --- 変更 --- # #<Directory "/usr/local/httpd-2.4.29/cgi-bin"> <Directory "var/www/cgi-bin"> # --- アンコメント --- # # Server-pool management (MPM specific) Include conf/extra/httpd-mpm.conf # Secure (SSL/TLS) connections Include conf/extra/httpd-ssl.conf
httpd-ssl.conf
重要なのは"Protocols h2 http/1.1"の設定で、ブラウザが対応していればHTTP/2、対応してなければHTTP/1.1になります。
# ファイルバックアップ
# cp /usr/local/httpd-2.4.29/conf/extra/httpd-ssl.conf{,.`date +%Y%m%d`}
# vi /usr/local/httpd-2.4.29/conf/extra/httpd-ssl.conf
# --- 暗号化方式変更--- #
#SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLCipherSuite "ECDHE-ECDSA-AES128-GCM-SHA256 \
ECDHE-ECDSA-AES256-GCM-SHA384 \
ECDHE-ECDSA-AES128-SHA \
ECDHE-ECDSA-AES256-SHA \
ECDHE-ECDSA-AES128-SHA256 \
ECDHE-ECDSA-AES256-SHA384 \
ECDHE-RSA-AES128-GCM-SHA256 \
ECDHE-RSA-AES256-GCM-SHA384 \
ECDHE-RSA-AES128-SHA \
ECDHE-RSA-AES256-SHA \
ECDHE-RSA-AES128-SHA256 \
ECDHE-RSA-AES256-SHA384 \
DHE-RSA-AES128-GCM-SHA256 \
DHE-RSA-AES256-GCM-SHA384 \
DHE-RSA-AES128-SHA \
DHE-RSA-AES256-SHA \
DHE-RSA-AES128-SHA256 \
DHE-RSA-AES256-SHA256 \
EDH-RSA-DES-CBC3-SHA"
# --- 追加 --- #
<VirtualHost _default_:443>
Protocols h2 http/1.1
# --- 変更 --- #
DocumentRoot "/var/www/html"
ServerName *****:443
#ErrorLog "/usr/local/httpd-2.4.29/logs/error_log"
#TransferLog "/usr/local/httpd-2.4.29/logs/access_log"
# --- 確認 ---#
SSLEngine on
SSLCertificateFile "/usr/local/httpd-2.4.29/conf/server.crt"
SSLCertificateKeyFile "/usr/local/httpd-2.4.29/conf/server.key"
# --- 変更 ---#
#<Directory "/usr/local/httpd-2.4.29/cgi-bin">
<Directory "var/www/cgi-bin">
Apache実行ユーザの作成
とりあえずUIDとGIDはパッケージインストールしたときのIDと同じものにしておきます。
# groupadd -g 48 apache # useradd -u 48 -g apache -s /sbin/nologin -M apache # grep apache /etc/group apache:x:48: # grep apache /etc/passwd apache:x:48:48::/home/apache:/sbin/nologin
ドキュメントルートを変更したので、ディレクトリを作成しておく
# mkdir -p /var/www/html
構文チェック
# /usr/local/httpd-2.4.29/bin/httpd -t Syntax OK または # /usr/local/httpd-2.4.29/bin/apachectl configtest Syntax OK
Apache起動
# /usr/local/httpd-2.4.29/bin/apachectl start
プロセス確認
# ps aux | grep apache | grep -v grep
Apache停止(プロセスがなくなっていることを確認する)
# /usr/local/httpd-2.4.29/bin/apachectl stop
シンボリックリンク作成
# cd /usr/local/ # ln -s /usr/local/httpd-2.4.29 httpd # ls -l total 8 drwxr-xr-x. 2 root root 78 Jan 18 11:26 bin drwxr-xr-x. 2 root root 6 Nov 6 2016 etc drwxr-xr-x. 2 root root 6 Nov 6 2016 games lrwxrwxrwx 1 root root 23 Jan 23 09:27 httpd -> /usr/local/httpd-2.4.29 drwxr-xr-x 15 root root 175 Jan 18 17:07 httpd-2.4.29 drwxr-xr-x. 4 root root 35 Jan 18 11:26 include drwxr-xr-x. 3 root root 4096 Jan 18 11:26 lib drwxr-xr-x. 2 root root 6 Nov 6 2016 lib64 drwxr-xr-x. 2 root root 6 Nov 6 2016 libexec lrwxrwxrwx 1 root root 25 Jan 17 09:23 openssl -> /usr/local/openssl-1.1.0g drwxr-xr-x 7 root root 67 Jan 17 09:20 openssl-1.1.0g drwxr-xr-x. 2 root root 6 Nov 6 2016 sbin drwxr-xr-x. 7 root root 75 Jan 18 11:15 share drwxr-xr-x. 7 root root 4096 Jan 23 08:01 src
パスを通す
# vi /etc/profile #以下追加 export PATH=/usr/local/httpd/bin:$PATH
systemdへの登録
ここまでくればApacheが動作していることが確認できているので、systemdで動くようにします。
systemd用設定ファイル作成
# vi /etc/systemd/system/httpd.service [Unit] Description=The Apache HTTP2.4 Server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/httpd-2.4.29/bin/apachectl -k start ExecReload=/usr/local/httpd-2.4.29/bin/apachectl -k graceful ExecStop=/usr/local/httpd-2.4.29/bin/apachectl -k stop [Install] WantedBy=multi-user.target
systemdに反映
# systemctl daemon-reload
systemdに反映されたことを確認する
# systemctl list-unit-files --type service | grep http httpd.service disabled
Apacheをsystemdで起動させる
# systemctl start httpd.service # systemctl status httpd.service ● httpd.service - The Apache HTTP2.4 Server Loaded: loaded (/etc/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2018-01-19 11:39:40 JST; 9s ago Process: 10651 ExecStart=/usr/local/httpd-2.4.29/bin/apachectl -k start (code=exited, status=0/SUCCESS) CGroup: /system.slice/httpd.service ├─10656 /usr/local/httpd-2.4.29/bin/httpd -k start ├─10657 /usr/local/httpd-2.4.29/bin/rotatelogs logs/error_log.%Y%m%d 86400 ├─10658 /usr/local/httpd-2.4.29/bin/rotatelogs logs/access_log.%Y%m%d 86400 ├─10659 /usr/local/httpd-2.4.29/bin/httpd -k start ├─10660 /usr/local/httpd-2.4.29/bin/httpd -k start ├─10661 /usr/local/httpd-2.4.29/bin/httpd -k start ├─10662 /usr/local/httpd-2.4.29/bin/httpd -k start └─10663 /usr/local/httpd-2.4.29/bin/httpd -k start Jan 19 11:39:40 ***** systemd[1]: Starting The Apache HTTP2.4 Server... Jan 19 11:39:40 ***** systemd[1]: Started The Apache HTTP2.4 Server.
自動起動の設定と確認
# systemctl enable httpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /etc/systemd/system/httpd.service. # systemctl is-enabled httpd.service enabled
MPMの確認
# apachectl -V Server version: Apache/2.4.29 (Unix) Server built: Jan 18 2018 17:04:28 Server's Module Magic Number: 20120211:68 Server loaded: APR 1.6.3, APR-UTIL 1.6.1 Compiled using: APR 1.6.3, APR-UTIL 1.6.1 Architecture: 64-bit Server MPM: prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/usr/local/httpd-2.4.29" -D SUEXEC_BIN="/usr/local/httpd-2.4.29/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
動作モジュールの確認
# apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (shared) authn_file_module (shared) authn_core_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) authz_core_module (shared) access_compat_module (shared) auth_basic_module (shared) socache_shmcb_module (shared) reqtimeout_module (shared) filter_module (shared) brotli_module (shared) mime_module (shared) log_config_module (shared) env_module (shared) headers_module (shared) setenvif_module (shared) version_module (shared) ssl_module (shared) http2_module (shared) unixd_module (shared) status_module (shared) autoindex_module (shared) dir_module (shared) alias_module (shared)
firewalldの設定
今回はConoHa VPS で構築してますが、構築が終わるまでは自宅のIPからのみアクセス許可に設定しました。
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address="xxx.xxx.xxx.xxx/32" service name="http" log prefix="firewalld" level="notice" limit value="24/h" accept' # firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address="xxx.xxx.xxx.xxx/32" service name="https" log prefix="firewalld" level="notice" limit value="24/h" accept' # firewall-cmd --reload success # firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="xxx.xxx.xxx.xxx/32" service name="ssh" log prefix="firewalld" level="notice" limit value="24/h" accept rule family="ipv4" source address="xxx.xxx.xxx.xxx/32" service name="http" log prefix="firewalld" level="notice" limit value="24/h" accept rule family="ipv4" source address="xxx.xxx.xxx.xxx/32" service name="https" log prefix="firewalld" level="notice" limit value="24/h" accept
サーバ公開時にはpublicゾーンにHTTP、HTTPSの許可を追加する
# 追加 # firewall-cmd --permanent --zone=public --add-service=http # firewall-cmd --permanent --zone=public --add-service=https # 削除 # firewall-cmd --permanent --zone=public--remove-service=http # firewall-cmd --permanent --zone=public --remove-service=https # 反映 # firewall-cmd --reload # 確認 # firewall-cmd --zone=public --list-all
ブラウザ確認
Apacheのドキュメントルートを変更したので、確認用に以下のファイルを移動して置く(終わったら削除)
# cp /usr/local/httpd-2.4.29/htdocs/index.html /var/www/html/.
ブラウザでhttpとhttpsアクセスして"It work!"が表示されることを確認する。指定したアクセス元以外からは見れないことも確認しておく。
http://Server_IP/ https://Server_IP/
HTTP/2の確認方法は以下を参考にさせていただきました。
以下の画面はchromeでHTTPアクセスの確認をした時のものです。Protocolがhttp/1.1になっており、HTTP/2が無効になっているのがわかります。
ちなみにpreforkはHTTP/2に対応していないので、HTTPSでアクセスしても以下のようにエラーログに記録されます。
[Thu Feb 22 16:23:15.315822 2018] [http2:warn] [pid 1173] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive.
最後に
今回は考慮することが多く構築順序を確定させるのがなかなか難しかった。
あとMPMをpreforkにしてるつもりが、いじってるうちに戻すのを忘れたみたいでeventになっていました。SSL接続でHTTP/2になってるやんと思ったが、ずっとメモリリークが発生する状況になってしまい、おかしいなと思いつつVPSのプランを上げても全く改善せず、MPMがeventになっていることに気が付きました。なるほどPHPでevent使うならやっぱりfastcgiにしないとだめねと思いました。
追記(2018/7/4)
MPMのprefokからeventへの変更は以下でまとめてます。
参考
Apache 2.4 event mpm+ php-fpm で WordPress を立ち上げる
http://www.kakiro-web.com/linux/ssl.html
https://weblabo.oscasierra.net/openssl-gencert-1/
https://blog.apar.jp/linux/7873/
https://blog.apar.jp/linux/8339/
https://blog.apar.jp/linux/8208/
https://qiita.com/pb_tmz08/items/68a58979ca22748e8502
https://nelog.jp/http2-browser-extensions