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

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

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

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

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

Debian 9にNeos CMSをインストールする方法

Debian 9にNeos CMSをインストールする方法

別のシステムを使用していますか?Neosは、CMSとアプリケーションフレームワークをコアとするコンテンツアプリケーションプラットフォームです。このガイドでは、インストール方法を説明します

Debian JessieでCactiをセットアップする

Debian JessieでCactiをセットアップする

はじめにCactiは、RRDデータに完全に基づいたオープンソースの監視およびグラフ作成ツールです。サボテンを通じて、ほぼすべてのタイプのデビックを監視できます

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

Go(Golangとも呼ばれます)は、静的に型付けされ、コンパイルされた、Cのようなプログラミング言語で、Googleによって開発されました。シンプルさと多用途性により、b

Debian 8のFlash 5にPBXをインストールする

Debian 8のFlash 5にPBXをインストールする

PBX In A Flash 5(PIAF5)は、Vultr VPSを本格的なPBXに変えるDebian 8ベースのオペレーティングシステムです。次のような特徴があります。

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

別のシステムを使用していますか?TermRecordはPythonで記述されたシンプルなオープンソースツールで、ターミナルセッションを簡単に共有できる自己完結型に保存できます。

Debian 9にMatomo Analyticsをインストールする方法

Debian 9にMatomo Analyticsをインストールする方法

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

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

この記事では、Vultrでテンプレートとして提供されるサーバーオペレーティングシステムの概要を説明します。CentOS CentOSはRHEL(Re

X-Cart 5をDebian 10にインストールする方法

X-Cart 5をDebian 10にインストールする方法

別のシステムを使用していますか?X-Cartは、数多くの機能と統合を備えた非常に柔軟なオープンソースのeコマースプラットフォームです。X-Cartのソースコードはホストです

MuninでDebianサーバーのステータスを監視する

MuninでDebianサーバーのステータスを監視する

Muninは、マシンのプロセスとリソースを調査する監視ツールであり、Webインターフェースを介して情報をグラフで表示します。フォローインを使用する

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

はじめにこのチュートリアルでは、CentOS、Debian、またはUbuntuを実行しているLinuxサーバーにIP範囲/サブネット全体を追加するプロセスについて説明します。プロセス

Debian 9のディアスポラでソーシャルネットワークを構築する

Debian 9のディアスポラでソーシャルネットワークを構築する

別のシステムを使用していますか?Diasporaはプライバシーを意識したオープンソースのソーシャルネットワークです。このチュートリアルでは、ディアスポラpoを設定する方法を学びます

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

別のシステムを使用していますか?Selfoss RSSリーダーは、無料でオープンソースのセルフホスト型のWebベースの多目的ライブストリーム、マッシュアップ、ニュースフィード(RSS / Atom)です。

UbuntuまたはDebianでApt-GetをIPv4またはIPv6に強制する

UbuntuまたはDebianでApt-GetをIPv4またはIPv6に強制する

ここVultrでは、デプロイ可能なすべてのVPSでIPv6を有効にするオプションがあります。しかし、これにより、一部のプログラムとコマンドはどちらか一方を優先する場合があります

ヘルスケア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は、ファイアウォール、プロキシ、