[LINUX] Un mémorandum pour faire WebDAV uniquement avec nginx

introduction

Cet article est basé sur la série debian (série Ubuntu).

Les méthodes WebDAV sont également incluses dans le package deb standard de nginx, mais il n'y a pas de méthodes pour certaines fonctions (PROPFIND, OPTIONS), et certaines applications peuvent ne pas fonctionner correctement, donc j'écrirai un article pour ajouter cette méthode. J'écris.

La version est inscrite en * écrit dans l'article.

Construire

Il n'est pas inclus dans le module par défaut, vous devez donc ajouter le module pour construire nginx.

Obtenez le code source

Obtenez le code source nginx avec la commande apt. Le répertoire n'a pas d'importance, mais c'est une bonne idée de le placer autour de / usr / src / ''.

# apt source nginx

Lorsque la commande est terminée, le code source ( nginx- *. *. * '') Sera placé dans le répertoire courant.

Installer les packages dépendants de la construction

Les packages dépendants sont écrits dans Build-dépend du fichier debian / control``` dans le répertoire racine source, donc installez-le en vous appuyant dessus. Les packages dépendants de la version (1.16.1) installée cette fois sont les suivants.

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

Importer l'extension WebDAV

Exécutez la commande suivante dans le répertoire racine source.

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

Ensuite, apportez quelques modifications pour en faire un package deb.

debian/rules


#réduction
# 39~Près de la ligne 41
config.status.nginx: config.env.nginx
        cd $(BUILDDIR_nginx) && \
        #Vers la fin" --add-module=/path/to/nginx-*.*.*/nginx-dav-ext-module "Ajouter.
        #Modifiez le répertoire en conséquence.
        CFLAGS="" ./configure --prefix=/etc/nginx ... --add-module=/path/to/nginx-*.*.*/nginx-dav-ext-module
        touch $@

# 44~Près de la ligne 46
config.status.nginx_debug: config.env.nginx_debug
        cd $(BUILDDIR_nginx_debug) && \
        #Ajouté le même que ci-dessus.
        CFLAGS="" ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx ... --add-module=/path/to/nginx-*.*.*/nginx-dav-ext-module
        touch $@
# (réduction)

Temps de construction

Tout ce que vous avez à faire est de faire ceci et d'attendre.

# dpkg-buildpackage -uc -b

En cas de succès, le package deb sera un au-dessus du répertoire racine source.

Installer et vérifier

Tout ce que vous avez à faire est de l'installer avec dpkg.

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

Une fois l'installation terminée, exécutez la commande suivante pour vérifier.

$ nginx -V

dans configure les arguments--with-http_dav_module et--add-module=/path/to/nginx-*.*.*/nginx-dav-ext-Si le module est inclus, vous avez terminé.



# Ensemble

 Je vais omettre les paramètres approximatifs. Veuillez le changer arbitrairement.

```nginx
location / {
  #Réglez si nécessaire
  # auth_basic "Authorize dialog message";
  # auth_basic_user_file /path/to/.htpasswd;

  #Définition des méthodes d'installation standard et des méthodes pour les modules supplémentaires
  dav_methods PUT DELETE MKCOL COPY MOVE;
  dav_ext_methods PROPFIND OPTIONS;

  #Paramètres pour afficher la liste des fichiers
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;

  #Paramètres d'autorisation de lecture / écriture
  dav_access user:rw group:rw all:r;

  #Autoriser la création de fichiers / répertoires temporaires
  client_body_temp_path /var/www/.webdavtmp;
  create_full_put_path on;
}

Redémarrez nginx et vous avez terminé.

Les références

Recommended Posts

Un mémorandum pour faire WebDAV uniquement avec nginx
Comment créer un dictionnaire avec une structure hiérarchique.
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
Essayez de créer un groupe de dièdre avec Python
(Mémorandum) Créer un diagramme de dispersion 3D avec matplodlib
Faisons un outil de veille de commande avec python
Comment faire un jeu de tir avec toio (partie 1)
Créer une fonction pour décrire les polices japonaises avec OpenCV
Rendre avec la syntaxe facile
Faites une loterie avec Python
Faire un feu avec kdeplot
Comment créer un BOT Cisco Webex Teams à l'aide de Flask
Je veux créer un éditeur de blog avec l'administrateur de django
Expérimentez pour créer un PDF indépendant pour Kindle avec Python
Je veux faire une macro de clic avec pyautogui (désir)
Comment faire un simple jeu Flappy Bird avec Pygame
Je veux faire une macro de clic avec pyautogui (Outlook)
Comment faire une traduction japonais-anglais
Faisons une interface graphique avec python.
Faites un son avec le notebook Jupyter
Un mémorandum pour passer à Manjaro Linux
Comment créer un bot slack
Faisons une rupture de bloc avec wxPython
Comment créer un robot - Avancé
Comment créer une fonction récursive
Créer un système de recommandation avec python
[Blender] Comment créer un plug-in Blender
Créer un filtre avec un modèle django
Faisons un graphe avec python! !!
Faisons un spacon avec xCAT
Comment créer un robot - Basic
Créer un itérateur de modèle avec PySide
Faire un joli graphique avec plotly
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de créer un système qui ne récupère que les tweets supprimés
Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
Un mémorandum lors de l'acquisition automatique avec du sélénium
django + nginx Comment faire en sorte que seuls les utilisateurs connectés voient les images
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
Comment faire une commande pour lire le fichier de paramètres avec pyramide
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
Créez votre propre VPC avec un seul sous-réseau public uniquement avec boto
Essayez de créer un type de service Web avec un langage de balisage 3D
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
J'ai essayé de créer une application todo en utilisant une bouteille avec python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de faire une étrange citation pour Jojo avec LSTM
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
Mémorandum (Ajouter le nom uniquement aux personnes portant le même nom de famille dans la liste)
Faisons un jeu de shiritori avec Python
Créer un lecteur vidéo avec PySimpleGUI + OpenCV
Les débutants en Python ont décidé de créer un bot LINE avec Flask (commentaire approximatif de Flask)
python à retenir uniquement avec bonjour, mondes