Raspberry Pi の Raspbian (debian系) で apt-get すると、Nginx は結構古いやつが入る。 やっぱり新しいのが使いたいと思って試したことをまとめる。 今回は結構 experimental なネタなので、at your own risk でお願いします。 初心者向けではないです。 あと、タイトルは Raspberry Pi だけど、一般の Debian / Ubuntu でも使えるネタだと思います。 (未検証ですが) 作業時間は、3B で 2時間くらいか。 片手間で十分だけど、時間を確保してください。 3B以外の機種では。。。結構な忍耐が必要そうです。。。クロスビルドを検討しましょう。 HTTP/2 も使いたいので、TLSのための openssl の新しいバージョンを使う。 システムワイドの openssl をアップデートするのはリスクがあるので、 nginxに内包して、ここだけで使用するように、ビルドする。 今回は、debian の deb のソースリポジトリから取得したソースをビルドするけど、一旦古いやつをaptで入れて `nginx -V` で表示されたオプションを、configure に指定するという方法でも割といける。 準備 なんにもビルドしたことがない環境の人は。。。
1 |
|
など。。。 後々、必要に応じて、ビルドに必要なライブラリをインストールする必要があるかもしれない。 ビルド中に `error: libなんとか` や `warning: libなんとか` と出たら、 `sudo apt-get install libなんとか` とか `sudo apt-get install libなんとか-dev` とやってみる(いい加減..)。 ソースの取得
1 |
|
ちなみに、このリポジトリのパスは `apt-get source nginx` したら、 こっちから取りな。と出てきたパス。 `apt-get source nginx` だと、 1.10 あたりが落ちてくる。 ビルドにオリジナルのソースが必要で、かつ、別名で参照されているので
1 |
|
(ハイフンがアンダースコアになっているので注意) openssl のソースを取得、展開
1 |
|
ビルドオプションの調整
1 |
|
configure の オプションを指定する箇所 `common_configure_flags := \ `(の後の72行目くらい) があるので、そこに
1 |
|
を追加。 もともとある `–with-thread` の後にバックスラッシュ付加。 お好みで makeに -j3 オプションを追加。 ビルドコマンド
1 |
|
エラーが出たら、パスを確認したり、最初のライブラリインストールを試す。 `dpkg-buildpackage`を使うと、また最初の clean, configure からになってしまうので、 参照URLにある、ビルドコマンドを活用すると多少時間短縮できる。 無理そうだったら、スパッと諦めて、また、体力のある時にリトライするのもいい。 ビルドが終わったら、
1 |
|
でビルドできたか確認する。
1 |
|
(ドットスラッシュ無しの現行nginxとの比較もしてみよう) 設定ファイルなどのバックアップを取って、
1 |
|
これで完了。 HTTP/2 を試したいときは、SSL(TLS) が必須なので、HTTPS の設定をしよう。 多分、HTTPS の設定をすれば、勝手になる。 Chromeの機能拡張 HTTP/2 and SPDY indicator というのを使うと、HTTP/2 使用時に青い稲妻が出て面白い。 参考URL https://www.debian.org/doc/manuals/maint-guide/build.ja.html