| 937 | |
| 938 | === WebDAV 設定 === |
| 939 | |
| 940 | なんと、ここに来て、 [https://packages.ubuntu.com/xenial/nginx nginx] パッケージとしてインストールした Nginx では WebDAV サポートが不十分であることが発覚しました。 |
| 941 | |
| 942 | Nginx には静的モジュールおよび動的モジュールとして様々なモジュールを追加できるのですが、それらは Nginx のビルド時に指定する必要があります。 Ubuntu (16.04) では利便性のため、用途のレベルに応じて採用されるモジュールの数が異なる以下の 4つのバージョンのパッケージを提供しています。 |
| 943 | |
| 944 | * [https://packages.ubuntu.com/xenial/nginx-core nginx-core] |
| 945 | * [https://packages.ubuntu.com/ja/xenial/nginx-extras nginx-extras] |
| 946 | * [https://packages.ubuntu.com/xenial/nginx-full nginx-full] |
| 947 | * [https://packages.ubuntu.com/xenial/nginx-light nginx-light] |
| 948 | |
| 949 | で、普通に `apt install nginx` を行った場合、インストールされるのは nginx-core になるようで、これには公式の [http://nginx.org/en/docs/http/ngx_http_dav_module.html http_dav_module] は含まれるものの、サードパーティの [https://github.com/arut/nginx-dav-ext-module nginx-dav-ext-module] は含まれないのだそうです。 |
| 950 | |
| 951 | いずれも若干情報が古いですが、インストールするパッケージに応じて具体的にどのへんのモジュールが適用されるのかについては以下のサイトにまとめられていました。 |
| 952 | |
| 953 | * [http://blog.it.churaumi.tv/nginx-light-full-extra-configure-compare nginx の light,full,extra の違い ( ubuntu編 ) - 紐付けな日々] |
| 954 | |
| 955 | また、 Debian のパッケージングに係る立場の人から、これらのバージョンごとの違いについての説明が寄せられている Q&A が以下にありました。 |
| 956 | |
| 957 | * [https://askubuntu.com/questions/553937/what-is-the-difference-between-the-core-full-extras-and-light-packages-for-ngi What is the difference between the core, full, extras and light packages for nginx? - Ask Ubuntu] |
| 958 | |
| 959 | nginx-core は nginx-full からサードパーティ製のモジュールを取り除いたもの、ということらしいです。 |
| 960 | |
| 961 | で、 WebDAV を動かすのに何故サードパーティモジュールである [https://github.com/arut/nginx-dav-ext-module nginx-dav-ext-module] が必要になるのかというと、 WebDAV をいわゆる Web フォルダとして使用するために必要となるいくつかの HTTP ステートメントのサポートが、公式のモジュールには含まれておらず、それを補完するのがこのモジュールであるから、ということみたいです。特に `PROPFIND` (属性情報の取得、ディレクトリのファイル一覧を取得するのにも必要) と `OPTIONS` (サポートする HTTP ステートメントを確認する、これが確認できないとそもそも動作しない WebDAV クライアントもある) はどう考えても必須です。 |
| 962 | |
| 963 | そんなわけで、 nginx-core を捨てて、 nginx-extras か nginx-full に入れ替える必要があります。 extras にあって full にない機能については、 Perl スクリプトを埋め込む機能や、 MP4 や flv をストリーミングする機能などがあるようですが、すぐには使わないかなと思ったので、 nginx-full を採用することにしました。 |
| 964 | |