WebDAVとはHTTPの拡張プロトコルで、httpプロトコルを利用してファイルの共有ができるプロトコルです。
FTP/SFTPは使いたくない、という場合などに利用できます。
有効化に5時間ぐらいハマったので有効化の方法を記載します。
本プロトコルについては、ネット上にさまざまな情報が掲載されていることから、環境によってhttpd.confの設定を変えないと適切に表示されないようです。
本手順はあくまで参考程度にご覧いただければと思います。
前提条件
###基本条件
OS
Amazon Linux release 2 (Karoo)
apache
Server version: Apache/2.4.46 ()
Server built: Aug 24 2020 18:54:20
###その他の条件
- Basic認証で保護する
- 本手順はテスト用サーバーでIPによるアクセス制限を行なったサイトであるため、SSLの設定は実施しない
- SELinuxは無効化されている
- 投稿者はapacheビギナー。WordPressを数回構築したことがあるレベル。
公式手順とネット上の情報を元に設定を行う
apacheの公式手順とネット上のサイトの手順を参考にして設定を行うことにしました。
#####実施した設定の一覧
上記サイトの手順を参考に行なった設定は以下の内容です。
- webdavで公開したいフォルダの作成と権限変更
# mkdir /home/webdav
# chown apache /home/webdav
# chgrp apache /home/webdav
# chmod 770 /home/webdav
- webdav用lock databaseの作成
# mkdir /var/lib/dav/lockdb
# chown apache /var/lib/dav/lockdb
# sudo chgrp apache /var/lib/dav/lockdb
- httpd.confの書き換え
DAVLockDB /var/lib/dav/lockdb
Alias /webdav /home/webdav
<Location /webdav>
DAV On
Options All
AuthType Basic
AuthName WebDAV
AuthUserFile /etc/httpd/conf/.htpasswd
<RequireAny>
Require method GET POST OPTIONS
Require valid-user
</RequireAny>
</Location>
- Basic認証の設定
# htpasswd -c /etc/httpd/conf/.htpasswd WebDAV
New password:
Re-type new password:
Adding password for user WebDAV
- サーバーリスタート
# systemctl restart httpd
簡単ですね!
参考にしたサイトがOptions Noneにしていたため、403エラーから脱することができず5〜6時間悩みましたが、ちゃんとサイト上のコードは何が書いてある確認しなかった自分が悪いので今後の糧にします・・・。
これでブラウザからhttp://hogehoge/webdavにアクセスすると、ファイル一覧が閲覧できます。
しかし、有効になりましたが!ブラウザで確認するとBasic認証なしで閲覧できてしまいます。
*参考のために/home/webdavフォルダに複数のファイルを置いてみました。
念の為CyberDuckから確認すると、こちらは認証情報を聞かれるので問題なさそうです。
少し調べてみたのですが、ブラウザからファイルが閲覧できる理由がわからず。
本番ではロードバランサの設定に、Cyberduckからのアクセスのみ許可するようにしました。
終わりに
今回WebDAVというプロトコルを初めて知り、ネットで調べてみると公式の手順以外にも様々な手順が掲載されていました。
そもそも公式手順を参考にしても動かなかったり(私の読解力のせい?)他のサイトには一つとして同じ設定を行なっているところはなく・・・。
記載されているhttpd.confの設定値を一つ一つ内容を確認しながら必要な設定を行なっていきました。
今回の設定でapacheへの理解を深めることができていい勉強になりました。