あると思ったらなかったHTTP/2対応(?)
[bash]
$ sudo a2enmod http2
ERROR: Module http2 does not exist!
$ ls /etc/apache2/mods-available/http2.load
ls: cannot access ‘/etc/apache2/mods-available/http2.load’: No such file or directory
[/bash]
マジかよ。
ぐぐってきたら、mod_http2.soが無いらしいので自前でapache2ビルドしてやれ、という情報が。やってやるぜ!
参考サイト:
How To Set Up Apache with HTTP/2 Support on Ubuntu 16.04 - WebSetNet
Bug #1543572 “mod_http2 is not available under apache 2.4.18 / U…“:Bugs:apache2 package:Ubuntu
流れは、
参考サイトでは最初にlibnghttp2-devをインストールさせてるけど、ぶっちゃけようわからん(まがお)一応入れました
さて作業。
[bash]
$ sudo apt-get install libnghttp2-dev
$ tail -n3 /etc/apt/sources.list
deb-src http://archive.ubuntu.com/ubuntu xenial main universe restricted multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu xenial-updates main universe restricted multiverse
$ sudo apt-get update
$ cd ~
$ mkdir apache2
$ cd apache2
$ apt-get source apache2
$ sudo apt-get build-dep apache2
$ cd apache2-2.4.18
$ fakeroot debian/rules binary
[/bash]
以上でビルドが完了するはず。あとはコピーして有効化してなんたらかんたら
[bash]
$ sudo cp ~/apache2/apache2-2.4.18/debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/
$ cat /etc/apache2/mods-available/http2.load
LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so
$ sudo a2enmod http2
$ cat /etc/apache2/sites-enabled/default-ssl.conf