[LINUX] Ein Memorandum, um WebDAV nur mit Nginx zu erstellen

Einführung

Dieser Artikel basiert auf der Debian-Serie (Ubuntu-Serie).

WebDAV-Methoden sind auch im Standard-Deb-Paket von nginx enthalten, es gibt jedoch keine Methoden für einige Funktionen (PROPFIND, OPTIONS), und einige Apps funktionieren möglicherweise nicht richtig. Schreiben Sie daher einen Artikel, um diese Methode hinzuzufügen Ich schreibe.

Die Version wird in * im Artikel geschrieben.

Bauen

Es ist nicht im Standardmodul enthalten, daher müssen Sie das Modul hinzufügen, um Nginx zu erstellen.

Holen Sie sich den Quellcode

Rufen Sie den Nginx-Quellcode mit dem Befehl apt ab. Das Verzeichnis spielt keine Rolle, aber es ist eine gute Idee, es um `` / usr / src / `zu setzen.

# apt source nginx

Wenn die Bestellung abgeschlossen ist, wird der Quellcode (`nginx- *. *. *`) Im aktuellen Verzeichnis abgelegt.

Installieren Sie Build-abhängige Pakete

Abhängige Pakete werden in Build-abhängig von der Datei `` `debian / control``` im Quellstammverzeichnis geschrieben. Installieren Sie sie also, indem Sie sich darauf verlassen. Die abhängigen Pakete der diesmal installierten Version (1.16.1) lauten wie folgt.

# apt install debhelper dh-systemd dpkg-dev quilt lsb-release libssl-dev libpcre3-dev zlib1g-dev

WebDAV-Erweiterung importieren

Führen Sie den folgenden Befehl im Quellstammverzeichnis aus.

# git clone https://github.com/arut/nginx-dav-ext-module.git

Nehmen Sie dann einige Änderungen vor, um daraus ein Deb-Paket zu machen.

debian/rules


#Kürzung
# 39~In der Nähe der Linie 41
config.status.nginx: config.env.nginx
        cd $(BUILDDIR_nginx) && \
        #Gegen Ende" --add-module=/path/to/nginx-*.*.*/nginx-dav-ext-module "Hinzufügen.
        #Ändern Sie das Verzeichnis entsprechend.
        CFLAGS="" ./configure --prefix=/etc/nginx ... --add-module=/path/to/nginx-*.*.*/nginx-dav-ext-module
        touch $@

# 44~In der Nähe der Linie 46
config.status.nginx_debug: config.env.nginx_debug
        cd $(BUILDDIR_nginx_debug) && \
        #Das gleiche wie oben hinzugefügt.
        CFLAGS="" ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx ... --add-module=/path/to/nginx-*.*.*/nginx-dav-ext-module
        touch $@
# (Kürzung)

Bauzeit

Alles was Sie tun müssen, ist dies zu tun und zu warten.

# dpkg-buildpackage -uc -b

Bei Erfolg befindet sich das Deb-Paket über dem Quellstammverzeichnis.

Installieren und überprüfen

Alles was Sie tun müssen, ist es mit dpkg zu installieren.

# dpkg -i nginx_*.*.*_*.deb

Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um dies zu überprüfen.

$ nginx -V

in konfigurieren Argumente--with-http_dav_Modul und--add-module=/path/to/nginx-*.*.*/nginx-dav-ext-Wenn das Modul enthalten ist, sind Sie fertig.



# einstellen

 Ich werde die groben Einstellungen weglassen. Bitte ändern Sie es willkürlich.

```nginx
location / {
  #Bei Bedarf einstellen
  # auth_basic "Authorize dialog message";
  # auth_basic_user_file /path/to/.htpasswd;

  #Festlegung von Standardmethoden und Methoden für Zusatzmodule
  dav_methods PUT DELETE MKCOL COPY MOVE;
  dav_ext_methods PROPFIND OPTIONS;

  #Einstellungen zum Anzeigen der Dateiliste
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;

  #Lese- / Schreibberechtigungseinstellungen
  dav_access user:rw group:rw all:r;

  #Ermöglichen Sie die temporäre Erstellung von Dateien / Verzeichnissen
  client_body_temp_path /var/www/.webdavtmp;
  create_full_put_path on;
}

Starten Sie nginx neu und Sie sind fertig.

Verweise

Recommended Posts

Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
Ich möchte ein Spiel mit Python machen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, mit Python eine Diedergruppe zu bilden
(Memorandum) Erstellen Sie mit matplodlib ein 3D-Streudiagramm
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Wie man ein Schießspiel mit toio macht (Teil 1)
Erstellen Sie mit OpenCV eine Funktion zum Beschreiben japanischer Schriftarten
Machen Sie es mit der Syntax einfach
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
So erstellen Sie mit Flask einen BOT für Cisco Webex-Teams
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Experimentieren Sie mit Python, um ein PDF für Selbstversorger für Kindle zu erstellen
Ich möchte ein Klickmakro mit pyautogui (Wunsch) erstellen.
Wie man ein einfaches Flappy Bird-Spiel mit Pygame macht
Ich möchte ein Klickmakro mit pyautogui (Outlook) erstellen.
Wie erstelle ich eine japanisch-englische Übersetzung?
Lassen Sie uns eine GUI mit Python erstellen.
Machen Sie einen Sound mit Jupyter Notebook
Ein Memorandum zur Umstellung auf Manjaro Linux
Wie man einen lockeren Bot macht
Machen wir einen Blockbruch mit wxPython
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
Erstellen Sie ein Empfehlungssystem mit Python
[Blender] So erstellen Sie ein Blender-Plug-In
Machen Sie einen Filter mit einer Django-Vorlage
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Wie erstelle ich einen Crawler?
Erstellen Sie mit PySide einen Modelliterator
Machen Sie eine schöne Grafik mit Plotly
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, ein System zu erstellen, das nur gelöschte Tweets abruft
Rubyist hat versucht, eine einfache API mit Python + Flasche + MySQL zu erstellen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ein Memorandum beim automatischen Erwerb mit Selen
django + nginx So lassen Sie nur angemeldete Benutzer Bilder anzeigen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
Erstellen Sie Ihre eigene VPC mit einem einzigen öffentlichen Subnetz Nur mit boto
Versuchen Sie, einen Web-Service-ähnlichen Typ mit 3D-Markup-Sprache zu erstellen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, Jojo mit LSTM ein seltsames Zitat zu machen
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
Memorandum (Namen nur Personen mit demselben Nachnamen in der Liste hinzufügen)
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV
Python-Anfänger haben beschlossen, einen LINE-Bot mit Flask zu erstellen (Flask-Kommentar)
Python nur mit Hallo, Welten zu erinnern