<AI>
Rocky LinuxでNginx WebDAVを設定するには、
Nginxの標準モジュールと追加モジュール (nginx-module-dav-ext) の両方を設定する必要があります。

標準モジュールだけでは、一部のWebDAVメソッド(LOCK, UNLOCK, PROPFINDなど)がサポートされません。 

以下に一般的な設定手順を示します。

前提条件

Rocky Linuxが稼働していること。

sudo権限を持つユーザーがいること。

Nginxがインストールされていること。 

手順

1. 必要なモジュールのインストール

Nginxのデフォルトインストールには、WebDAVの全機能に必要なモジュールが含まれていない場合があります。
nginx-module-dav-ext パッケージをインストールします。 

bash
sudo dnf -y install https://extras.getpagespeed.com/release-latest.rpm
sudo dnf -y install nginx-module-dav-ext

モジュールを有効にするため、/etc/nginx/nginx.conf の最上部に以下の行を追加します。 

nginx
load_module modules/ngx_http_dav_ext_module.so;

2. WebDAV用ディレクトリの作成

WebDAVでファイルを共有するためのディレクトリを作成し、適切な権限を設定します。 

bash
sudo mkdir -p /var/www/webdav

# Nginxの実行ユーザーに合わせて所有者を変更します (デフォルトはnginxユーザー)

sudo chown -R nginx:nginx /var/www/webdav
sudo chmod -R 755 /var/www/webdav

3. Nginxの設定

/etc/nginx/conf.d/webdav.conf (または /etc/nginx/nginx.conf 内の http または server ブロック) 
に新しい設定ファイルを作成します。 

nginx
server {
    listen 80;
    server_name your_domain.com; # ドメイン名またはIPアドレスに変更してください

    location /webdav {
        root /var/www/;
        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK; # 追加モジュールによる拡張メソッド
        create_mask 0644;
        client_max_body_size 0; # ファイルサイズ制限なし

        # Basic認証の設定 (セキュリティのため推奨)
        auth_basic "WebDAV Realm";
        auth_basic_user_file /etc/nginx/.htpasswd;
        require valid-user;
    }
}

4. WebDAVユーザーの作成

Basic認証で使用するパスワードファイルを作成します。
htpasswd ユーティリティを使用します(httpd-tools パッケージが必要かもしれません: sudo dnf install httpd-tools -y)。

bash
sudo htpasswd -c /etc/nginx/.htpasswd your_username  # 最初のユーザー作成時は -c を使用

# 2人目以降のユーザー追加時

sudo htpasswd /etc/nginx/.htpasswd another_username 

5. Nginxの設定テストと再起動 

設定ファイルの構文をテストし、問題がなければNginxを再起動して変更を適用します。 

bash
sudo nginx -t
sudo systemctl restart nginx

6. ファイアウォールの設定

ファイアウォールでHTTP(80番ポート、HTTPSを使用する場合は443番ポートも)トラフィックを許可します。 

bash
sudo firewall-cmd --permanent --add-service=http
(sudo firewall-cmd --permanent --add-service=https # HTTPSを使用する場合)

sudo firewall-cmd --reload

7. 動作確認

WinSCP などのWebDAVクライアントを使用して、設定したURL (http://your_domain.com) で接続テストを行います。
Windows標準のネットワークドライブマッピング機能は、NginxのネイティブWebDAVモジュールと完全な互換性がない場合があるため、専用クライアントの使用が推奨されます。 

本番環境では、セキュリティ向上のためHTTPS/SSL証明書の設定を強く推奨します。