Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
WebDAVのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
WebDAV
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:WebDAV]] [[en:WebDAV]] '''WebDAV''' (Web Distributed Authoring and Versioning) は HTTP 1.1の拡張でありプロトコルとも言えます。WebDAV は HTTP 1.1 プロトコルを用いて読み書きできる方法の拡張からなります。[[NFS]] や [[Samba|SMB]] の代わりに、WebDAV は HTTP によるファイル転送を提供します。 この記事では[[:Category:ウェブサーバー|ウェブサーバー]]を使ってシンプルな WebDAV を設定します。 == サーバー == === Apache === [[Apache HTTP Server]] をインストールしてください。 そして WebDAV を有効化します。DAV のモジュールをアンコメント: {{bc| LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so }} 以下の行を {{ic|/etc/httpd/conf/httpd.conf}} に追加: DAVLockDB /home/httpd/DAV/DAVLock 他のディレクティブ (例えば {{ic|DocumentRoot}} 定義のすぐ下など) の外に追加するようにしてください。 次に、以下を追加 (これもディレクティブの外に): {{bc| Alias /dav "/home/httpd/html/dav" <Directory "/home/httpd/html/dav"> DAV On AllowOverride None Options Indexes FollowSymLinks Require all granted </Directory> }} ディレクトリを作成: # mkdir -p /home/httpd/DAV DavLockDB のディレクトリのパーミッションを変更し、{{ic|http}} ユーザーにより書き込みができるようにします: # chown -R http:http /home/httpd/DAV # mkdir -p /home/httpd/html/dav # chown -R http:http /home/httpd/html/dav ===Nginx=== メインライン版の [[nginx]] と {{AUR|nginx-mainline-mod-dav-ext}} をインストールしてください。 {{ic|/etc/nginx/nginx.conf}} のブロックの外側に、以下を追加: {{bc| load_module /usr/lib/nginx/modules/ngx_http_dav_ext_module.so; }} {{ic|server}} ブロックに WebDAV の新しい {{ic|location}} を追加: {{bc| location /dav { root /srv/http; dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS; # Adjust as desired: dav_access all:rw; client_max_body_size 0; create_full_put_path on; client_body_temp_path /srv/client-temp; autoindex on; allow 192.168.178.0/24; deny all; } }} 上記の例では {{ic|/srv/http/dav}} と {{ic|/srv/client-temp}} ディレクトリが必要です。 バインドマウントを使って WebDAV で他のディレクトリにアクセスできるようにすることもできます。 === rclone === {{Pkg|rclone}} パッケージを [[インストール]] します。リモートまたはローカルディレクトリのエクスポートをサポートしています [https://rclone.org/commands/rclone_serve_webdav/ WebDAV を使う] 認証なしで {{ic|/srv/http}} のコンテンツを提供するには: $ rclone serve webdav /srv/http === Caddy === {{AUR|caddy-webdav-git}} パッケージを [[インストール]] するか、{{AUR|xcaddy-bin}} を使用して WebDAV モジュールで [[Caddy]] をビルドします。 $ xcaddy build --with github.com/mholt/caddy-webdav ポート 80 を使用してパス {{ic|dav}} 上の {{ic|/srv/webdav}} のコンテンツを提供するには、次を [[Caddy#設定|Caddyfile]] に追加します。 :80 { rewrite /dav /dav/ webdav /dav/* { root /srv/webdav prefix /dav } file_server } 次に [[Caddy#使用方法|Caddy を実行]]: $ caddy run == クライアント == === Cadaver === Cadaver は WebDAV 用のコマンドラインクライアントです。{{Pkg|cadaver}} パッケージでインストールすることができます。 インストールしたら、WebDAV サーバーをテスト: # cadaver http://localhost/dav dav:/dav/> mkcol test Creating `test': succeeded. dav:/dav/> ls Listing collection `/dav/': succeeded. Coll: test === Dolphin === [[Dolphin]] に永続的な WebDAV フォルダーを作成するには、場所サイドバーの ''リモート'' セクションで ''ネットワーク'' を選択し、''ネットワークフォルダーの追加'' ボタンを押します。ネットワークフォルダーウィザードが表示されます。''WebFolder (webdav)'' を選択し、次のフォームに入力します。 または、パスバーをクリックして、''webdav://'' プロトコル指定子を含む URL を入力します。 === Nautilus === [[Nautilus]] では、''サーバーに接続'' を選択し、{{ic|dav://}} または {{ic|davs://}} プロトコルを指定してアドレスを入力するだけです。 dav://127.0.0.1/dav {{Note|{{ic|dav://}} で ''HTTP Error: Moved permanently nautilus'' が発生した場合は、代わりにプロトコルとして {{ic|davs://}} を使用してみてください。}} === rclone === {{Pkg|rclone}} は、WebDAV を含むリモートファイルシステムとの同期、または [https://rclone.org/commands/rclone_mount/ mount] (多くのキャッシュ オプション付き) を可能にするコマンドラインツールです。 === Thunar === [[Thunar]] の中で {{ic|Ctrl+l}} を押して ''dav'' あるいは ''davs'' プロトコルのアドレスを入力してください: davs://webdav.yandex.ru == 認証 == 使用することができるプロトコルは以下の通りです: * plain * digest * others === Apache === {{man|1|htdigest}} を使用します (ファイルが存在する場合は、{{ic|-c}} オプションを削除します): # htdigest -c /etc/httpd/conf/passwd WebDAV ''username'' {{Note|{{ic|httpd.conf}} に次のエントリが存在することでダイジェスト認証が有効になっていることを確認出来ます: {{ic|LoadModule auth_digest_module modules/mod_auth_digest.so}}}} プレーンな {{man|1|htpasswd}} を使用します (ファイルが存在する場合は、{{ic|-c}} オプションを削除します。) # htpasswd -c /etc/httpd/conf/passwd ''username'' 次に、認証を有効にするために {{ic|httpd.conf}} を編集する必要があります。1 つの方法は、すべての操作にユーザー {{ic|foo}} を要求することです。 {{bc| <Directory "/home/httpd/html/dav"> DAV On AllowOverride None Options Indexes FollowSymLinks AuthType Digest # substitute "Basic" for "Digest" if you used htpasswd above AuthName "WebDAV" AuthUserFile /etc/httpd/conf/passwd Require user foo </Directory> }} {{Note|{{ic|AuthName}} は、ダイジェスト認証に {{ic|htdigest}} コマンドを使用するときに渡されるレルム名と一致する必要があります。基本/単純認証の場合、この行は削除される可能性があります。また、{{ic|AuthUserFile}} パスが、上記の {{ic|htdigest}} または {{ic|htpasswd}} コマンドで使用したものと一致していることを確認してください。}} 全員に読み取りを許可したい場合は、httpd.conf でこれを使用できます。 {{bc| <Directory "/home/httpd/html/dav"> DAV On AllowOverride None Options Indexes FollowSymLinks AuthType Digest # substitute "Basic" for "Digest" if you used htpasswd above AuthName "WebDAV" AuthUserFile /etc/httpd/conf/passwd Require all granted <LimitExcept GET HEAD OPTIONS PROPFIND> Require user foo </LimitExcept> </Directory> }} 変更を加えた後は、{{ic|httpd.service}} を [[再起動]] することを忘れないでください。 {{Note|Apache で 405 エラーが発生した場合は、{{ic|Directory}} セクションに {{ic|DirectoryIndexdisabled}} を追加してください。}} == トラブルシューティング == === 一部のファイルエクスプローラーは nginx WebDAV のディレクトリを編集できません === nginx WebDAV では、ディレクトリパスがスラッシュ ({{ic|/}}) で終わる必要がありますが、一部のファイルエクスプローラーはパスの最後に {{ic|/}} を追加しません。 これは、対応するチェック [https://github.com/nginx/nginx/blob/master/src/http/modules/ngx_http_dav_module.c コード] を削除して再コンパイルするか、次のコードを追加することで回避できます。必要に応じて、nginx {{ic|server}} ブロックにコードを記述して、リクエストの最後に {{ic|/}} を追加します。 {{bc|1=# The configuration was based on: https://nworm.icu/post/nginx-webdav-dolphin-deken/ # if the request method is MKCOL or is to a directory, add / at the end of the request if it was missing if ($request_method = MKCOL) { rewrite ^(.*[^/])$ $1/ break; } if (-d $request_filename) { rewrite ^(.*[^/])$ $1/ break; } # if the request method is copy or move a directory, add / at the end of the request if it was missing set $is_copy_or_move 0; set $is_dir 0; if (-d $request_filename) { set $is_dir 1; } if ($request_method = COPY) { set $is_copy_or_move 1; } if ($request_method = MOVE) { set $is_copy_or_move 1; } set $is_rewrite "${is_dir}${is_copy_or_move}"; if ($is_rewrite = 11) { rewrite ^(.*[^/])$ $1/ break; } }}
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
WebDAV
に戻る。
検索
検索
WebDAVのソースを表示
話題を追加