WsgiDAVを使用してDebian 10にWebDAVをデプロイする

前書き

Web分散オーサリングとバージョン管理(WebDAV)は、サーバー上でファイルをリモートで作成および変更するためのフレームワークを提供するHTTP拡張です。WsgiDAVは、Pythonで記述されたWebDAVサーバーです。このガイドでは、Debian 10を実行しているVultrサーバーにWsgiDAVバージョン3.0をインストールする方法について説明します。また、SSL証明書を取得して、安全な接続とPAM認証を提供します。

前提条件

  • (rootユーザーまたは任意のsudoユーザーを介して)特権アクセスが可能なDebian 10システム。
  • $EDITOR環境変数は、お好みのテキストエディタに設定する必要があります。
  • 登録済みのドメイン名が必要です。そのネームサーバーはA、サーバーのIPv4アドレスをAAAA指すレコード、およびオプションでIPv6アドレスを指すレコードで構成する必要があります。
  • YAML構文に精通していることが推奨されます。

プレースホルダーdav.example.comは、サーバーのドメイン名に使用されます。

取り付け

SSL証明書

まずシステムを更新し、Let's Encryptから無料のSSL証明書を取得します。これを行うには、まずシステムを更新してcertbotユーティリティをインストールします。

 sudo apt update
 sudo apt upgrade -y
 sudo apt install -y certbot

以下のコマンドでは、交換するdav.example.com[email protected]、それを実行する前に、それぞれ自分のドメイン名とメールアドレスを持ちます:

sudo certbot certonly --standalone --agree-tos -m [email protected] -d dav.example.com

指定したドメイン名を制御していることを確認するために、サーバーにチャレンジが送信されます。成功すると、証明書が発行され、秘密鍵などの他のファイルとともにの下に保存され/etc/letsencrypt/live/dav.example.com/ます。

WsgiDAVのインストール

まず、Pythonパッケージマネージャーをインストールしますpip

sudo apt update
sudo apt install -y python3-pip

WsgiDAVには、WSGIをサポートするHTTPサーバーが必要です。デフォルトのオプションであるCherootをインストールします。また、lxml pythonライブラリをインストールします。これは、デフォルトでインストールされるXMLライブラリよりもパフォーマンスが向上する傾向があります。PAM(Pluggable Authentication Module)python3ライブラリも必要です。pipツールを使用して必要なパッケージをインストールします。

sudo pip3 install wsgidav cheroot lxml python-pam

WsgiDAVの構成

WsgiDAV実行可能ファイルはに格納されている/usr/local/binため、設定ファイルを/usr/local/etcディレクトリに配置します。次のコマンドを使用して、サンプル構成ファイルをダウンロードします。

sudo mkdir -p /usr/local/etc
sudo wget https://github.com/mar10/wsgidav/raw/master/sample_wsgidav.yaml -O /usr/local/etc/wsgidav.yaml

エディターで開きます。

sudo $EDITOR /usr/local/etc/wsgidav.yaml

「SSLサポート」セクションで次の行を見つけます。

# ssl_certificate: "wsgidav/server/sample_bogo_server.crt"
# ssl_private_key: "wsgidav/server/sample_bogo_server.key"
# ssl_certificate_chain: null

それらを次のものに置き換えます。

ssl_certificate: "/etc/letsencrypt/live/dav.example.com/cert.pem"
ssl_private_key: "/etc/letsencrypt/live/dav.example.com/privkey.pem"
ssl_certificate_chain: "/etc/letsencrypt/live/dav.example.com/chain.pem"

次に、HTTPパス(など/)をファイルシステム(など/var/www/dir1)上の対応する場所にマッピングして、共有パスを構成します。デモのために、2つのディレクトリを共有します。1つは読み取り専用です。provider_mapping「共有」セクションでブロックを見つけます。

provider_mapping:
    "/": "/path/to/share1"
    "/pub":
        root: "/path/to/share2"
        readonly: true
    "/share3":
        provider: path.to.CustomDAVProviderClass
        args: ["/path/to/share3", "second_arg"]
        kwargs: {"another_arg": 42}

それを交換してください:

provider_mapping:
    "/":
    root: "/var/www/html/documents"
    readonly: false
"/reports":
    root: "/var/www/html/reports"
    readonly: true

これらのマッピングでhttps://dav.example.com:8080//var/www/html/documents、はサーバー上のディレクトリに対応しますが、書き込みアクセスなしでにhttps://dav.example.com:8080/reportsマッピングさ/var/www/html/reportsれます。

認証にはPAMドライバーを使用します。これにより、個別のWebDAVユーザーアカウントが不要になり、システムユーザーが通常の資格情報を使用してログインできるようになります。

「AUTHENTICATION」セクションで、次の行を見つけます。

accept_basic: true
accept_digest: true
default_to_digest: true
domain_controller: null

それらを次のものに置き換えます。

accept_basic: true
accept_digest: false
default_to_digest: false
domain_controller: wsgidav.dc.pam_dc.PAMDomainController

これでサーバーをテストできます:

sudo wsgidav -c /usr/local/etc/wsgidav.yaml

https://dav.example.com:8080/Webブラウザーで開きます。PAM認証を設定したので、Linuxユーザーアカウントでログインする必要があります。続行する前にCTRL+ Cを使用してサーバーを停止します。

サービスとしてインストール

systemdが管理するシステムサービスとしてWebDAVサーバーを実行するには、ユニットファイルを作成します。

sudo $EDITOR /etc/systemd/system/wsgidav.service

次のように入力します:

[Unit]
Description=WsgiDAV WebDAV server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/wsgidav -c /usr/local/etc/wsgidav.yaml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=wsgidav_service

[Install]
WantedBy=multi-user.target

次に、システムログサービスの構成ファイルを作成します。

sudo $EDITOR /etc/rsyslog.d/wsgidav_service.conf

ファイルに以下を入力します。

 if $programname == 'wsgidav_service' then /var/log/wsgidav.log
 & stop

保存して終了し、以下のコマンドを使用してログファイルを作成します。

sudo touch /var/log/wsgidav.log
sudo chown root:adm /var/log/wsgidav.log

最後に、新しいsystemdユニットファイルをロードし、WsgiDAVを開始する前にログサービスを再起動します。

sudo systemctl daemon-reload
sudo systemctl restart rsyslog.service
sudo systemctl start wsgidav.service

を使用systemctlして、WebDAVサーバーを起動、停止、再起動できます。WsgiDAVの標準出力とエラーはに記録され/var/log/wsgidav.log、を使用してアクセスすることもできますsudo journalctl -u wsgidav.service

システムの起動時にWebDAVサーバーを自動的に起動する場合は、次のコマンドを実行します。

 sudo systemctl enable wsgidav.service

参考文献



Leave a Comment

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、