Changes between Version 11 and Version 12 of HowTo/SakuraVpsSetup3b


Ignore:
Timestamp:
Nov 5, 2019, 12:35:31 AM (5 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/SakuraVpsSetup3b

    v11 v12  
    11381138(内容はてきとう)
    11391139}}}
     1140
     1141そしたら certbot を使って SSL の設定をします。作業内容は省略。もちろん HTTP -> HTTPS にリダイレクトする設定も施しました。
     1142
     1143ここでいよいよ WebDAV の設定です。もう一度 Nginx の設定ファイルを開いて編集します。
     1144
     1145{{{
     1146#!console
     1147$ sudo su -
     1148# cd /etc/nginx/sites-available/
     1149# vim dav
     1150}}}
     1151
     1152設定内容の全容は以下の通りです。
     1153
     1154{{{
     1155server {
     1156    server_name dav.harapeko.jp;
     1157    root /var/www/vhosts/dav/files;
     1158
     1159    location / {
     1160        charset utf-8;
     1161
     1162        autoindex on;
     1163        autoindex_exact_size off;
     1164        autoindex_localtime on;
     1165
     1166        # enable creating directories without trailing slash (MaxOS/iOS bug support)
     1167        set $x $uri$request_method;
     1168        if ($x ~ [^/]MKCOL$) {
     1169            rewrite ^(.*)$ $1/;
     1170        }
     1171
     1172        dav_methods PUT DELETE MKCOL COPY MOVE;
     1173        dav_ext_methods PROPFIND OPTIONS;
     1174        #dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;
     1175        #dav_ext_lock zone=harapeko_dav;
     1176
     1177        dav_access group:rw all:r;
     1178        client_body_temp_path /var/www/vhosts/dav/tmp;
     1179        create_full_put_path on;
     1180
     1181        auth_basic "WebDAV Authentication";
     1182        auth_basic_user_file /var/www/vhosts/dav/.htpasswd;
     1183    }
     1184
     1185    listen [::]:443 ssl; # managed by Certbot
     1186    listen 443 ssl; # managed by Certbot
     1187    ssl_certificate /etc/letsencrypt/live/dav.harapeko.jp/fullchain.pem; # managed by Certbot
     1188    ssl_certificate_key /etc/letsencrypt/live/dav.harapeko.jp/privkey.pem; # managed by Certbot
     1189    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
     1190    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
     1191
     1192}
     1193
     1194server {
     1195    if ($host = dav.harapeko.jp) {
     1196        return 301 https://$host$request_uri;
     1197    } # managed by Certbot
     1198
     1199
     1200    listen 80;
     1201    listen [::]:80;
     1202    server_name dav.harapeko.jp;
     1203    return 404; # managed by Certbot
     1204
     1205
     1206}
     1207}}}
     1208
     1209[https://github.com/arut/nginx-dav-ext-module nginx-dav-ext-module 公式リポジトリ]の README を見ながら `LOCK`, `UNLOCK` にも対応させてみたかったのですが、 `dav_ext_lock_zone` ディレクティブなんて知らんぞ、と怒られてしまったので (モジュールのバージョンが古いのかも… orz)、とりあえずロックなしで設定してしまっています。
     1210
     1211`autoindex` 関連はブラウザでアクセスしたときにとりあえずファイル一覧を見せておく用です。
     1212
     1213`root` は WebDAV のファイル置き場にするディレクトリパスに変えておきます。 `index` はもはや不要なので削除。
     1214
     1215で、以下の部分ですが、
     1216
     1217{{{
     1218        # enable creating directories without trailing slash (MaxOS/iOS bug support)
     1219        set $x $uri$request_method;
     1220        if ($x ~ [^/]MKCOL$) {
     1221            rewrite ^(.*)$ $1/;
     1222        }
     1223}}}
     1224
     1225これは `MKCOL` リクエスト (=コレクション作成、よーするにディレクトリ作成) が来たにも関わらず URI がスラッシュで終わっていない場合に、スラッシュ付きの URI に rewrite してあげるというもので、 MacOS や iOS で実際この手のリクエストが来てエラーになる場合があるらしいことへの対応らしいです。想定されるユーザーに Apple ユーザーがいる場合は必須ですね (うちには居ないんですが)。
     1226
     1227SSL に関する設定内容は certbot が勝手にやってくれたものをそのまま残しています。
     1228
     1229基本認証の設定も書き加えていますが、肝心のパスワードファイルがまだ未作成なので作成します。また、 WebDAV 用のテンポラリファイルも作っておきます。
     1230
     1231{{{
     1232#!console
     1233# cd /var/www/vhosts/dav
     1234# htpasswd -c .htpasswd murachi
     1235New password:
     1236Re-type new password:
     1237Adding password for user murachi
     1238# mkdir tmp
     1239# chown murachi:www-data .htpasswd tmp
     1240# ls -la
     1241total 24
     1242drwxr-xr-x 5 root     root     4096 11月  4 23:51 .
     1243drwxr-xr-x 7 root     root     4096 11月  4 17:17 ..
     1244-rw-r--r-- 1 murachi  www-data   46 11月  4 22:41 .htpasswd
     1245drwxrwsr-x 3 murachi  www-data 4096 11月  5 00:00 files
     1246drwxrwsr-x 2 murachi  www-data 4096 11月  4 17:23 html
     1247drwxr-xr-x 2 www-data www-data 4096 11月  4 23:51 tmp
     1248#
     1249}}}
     1250
     1251これで Nginx を再起動すれば、 WebDAV が使えるようになるはずです…。
     1252
     1253{{{
     1254#!console
     1255# service nginx restart
     1256}}}
     1257
     1258Ubuntu のファイラーからは無事にアクセスできるようになったのですが、 Windows7 の Web フォルダ機能からは接続できませんでした…。 CarotDAV というツールを使えばいけるのですが… あとファイルアップロードで上書きがどうこうとかいう警告が出ちゃいますね (Ubuntu でも Win + CarotDAV でも)。これだったら sftp とかでも使い勝手はそこまで変わらんかなぁ… (´・_・`)