MacでWebDAV

MacでWebDAV環境を構築する手順

この内容は、多分に技術的な内容になります。このようなネタがお好きな方のみお進みください。“コンソールとか”、“apache”とかの用語が分からない方は、先に進まないことをお薦めします。

あと、下記は、開発者が自端末で作業した手順ですが、このような内容は、時間経過とともに変わっていく可能性があります。以下の手順で必ずしも設定ができることを保証しているわけではないことはご承知おきください。

【ステップ1】Apacheと必要なモジュールのインストール

1. Homebrewの更新

brew update

2. Apache本体のインストール

brew install httpd
==> Would install 6 dependencies for httpd:
apr
ca-certificates
openssl@3
apr-util
libnghttp2
pcre2
==> Do you want to proceed with the installation? [y/n]

当然、yです。

【ステップ2】Apacheの基本設定(httpd.confの編集)

vi /opt/homebrew/etc/httpd/httpd.conf

以下の箇所のコメントアウトを解除

LoadModule dav_module lib/httpd/modules/mod_dav.so
LoadModule dav_fs_module lib/httpd/modules/mod_dav_fs.so
LoadModule auth_digest_module lib/httpd/modules/mod_auth_digest.so
Include /opt/homebrew/etc/httpd/extra/httpd-dav.conf

【ステップ3】WebDAV設定(httpd-dav.confの編集)

vi opt/homebrew/etc/httpd/extra/httpd-dav.conf
# WebDAVのロックファイル位置(デフォルト)
DavLockDB "/opt/homebrew/opt/httpd/var/DavLock"

# 外付けストレージの公開設定
Alias /dav "/Users/Shared/dav"

# /dav ルート直下へのアクセスを禁止(フォルダ一覧を見せない)
<Directory "/Users/Shared/dav">
    Require all denied
</Directory>

<DirectoryMatch "/Users/Shared/dav/common">
    Dav On
    AllowOverride None
    Options None

    AuthType Digest
    AuthName "PrivateDAV"
    AuthDigestProvider file
    AuthUserFile "/opt/homebrew/etc/httpd/extra/dav_auth/.htdigest"
    Require valid-user
</DirectoryMatch>

# /dav/[username]/ 以下のみアクセスを許可
<DirectoryMatch "^/Users/Shared/dav/(?<username>[^/]+)">
    Dav On
    AllowOverride None
    Options None

    AuthType Digest
    AuthName "PrivateDAV"
    AuthDigestProvider file
    AuthUserFile "/opt/homebrew/etc/httpd/extra/dav_auth/.htdigest"
    Require valid-user
</DirectoryMatch>
<LocationMatch "^/dav/(?<username>(?!common)[^/]+)/">
    Require expr %{REMOTE_USER} == %{env:MATCH_USERNAME}
</LocationMatch>

【ステップ4】データ保存先フォルダの準備と権限付与

保存先フォルダを作成

mkdir /Users/Shared/dav

ユーザフォルダ作成

mkdir /Users/Shared/dav/[ユーザ名]

【ステップ5】Apacheの起動と確認

設定ファイルの記述に間違いがないかチェック

/opt/homebrew/bin/apachectl configtest

「Syntax OK」と表示されれば成功です。エラーが出た場合は行数を確認して修正します。

Apacheサービスを起動(Macの起動時に自動で立ち上がるようになります)

brew services start httpd

設定完了です。確認してみましょう。

まずは、MacのIPアドレスを調べます。

ifconfig

... 略
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1472
   ... 略
	inet 192.168.1.200 netmask 0xffffff00 broadcast 192.168.1.255
   ... 略

192.168.1.200でした。

Finderの移動メニュー

[…]は、ユーザ名です。

このダイアログは、無視して接続です。

特にエラーがなく、フォルダのような表示がされれば設定完了です。