# Installer Nginx + Webdav sur Debian 11 > Installer Nginx (serveur web) + Webdav (fichiers sur http) sur Debian 11. Publié le 2021-10-21 | Mis à jour le 2025-03-23 | Tags: nginx, webdav https://xsec.fr/gnu-linux/nginx-webdav/ --- import Callout from '@shared/components/Callout.astro' import { Collapsible } from '@shared/components/ui/collapsible' import { Steps, Step } from '@/components/ui/steps' Si vous configurez votre serveur directement en tant que root, n'oubliez pas de retirer `sudo` de chaque commande. Si vous définissez un mot de passe pour le compte root, la commande `sudo` ne sera pas acceptée. Connectez-vous directement en tant que root pour exécuter les commandes. Vous pouvez aussi réinstaller votre système en laissant le mot de passe root vide lors de l'installation. `sudo` s'installera et fonctionnera correctement. Pour disposer des modules nécessaires, vous devez installer nginx dans sa version complète : ```sh sudo apt update && sudo apt install nginx-full ``` - C'est fait ! Votre site est accessible dans votre navigateur à l'adresse `http://IP_de_votre_machine` ## Configuration WebDAV Créez un fichier de configuration pour chaque site, n'oubliez pas de changer le port, pour éviter d'avoir plusieurs configurations avec le même port. - Ici nous allons éditer le fichier par défaut, mais nous pourrions très bien le copier et le renommer : ```sh sudo cp /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/site.conf sudo rm /etc/nginx/sites-enabled/default ``` ## Éditer le fichier de configuration ```sh sudo nano /etc/nginx/sites-enabled/site.conf ``` ```sh title="/etc/nginx/sites-enabled/default" server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name _; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } location ^~ /webdav { auth_basic "realm_name"; auth_basic_user_file /var/www/.auth.allow; alias /var/www/html; autoindex on; autoindex_exact_size on; autoindex_localtime on; index file.html; dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS; dav_access user:rw; client_body_temp_path /var/www/tmp; client_max_body_size 0; create_full_put_path on; } } ``` - `Ligne 1-3` Le serveur écoute sur le port 80. - `Ligne 5` Définit le chemin de la racine du site internet (ou où se trouve votre index.html, par exemple). - `Ligne 18` `location ^~ /webdav {` dit que pour atteindre `/var/www/html` je saisis `l'ip ou le nom de ma machine` + `/webdav` = `http://172.16.30.30/webdav` par exemple. - `Ligne 20` Définit le chemin du fichier d'authentification. ## Créer le fichier d'authentification ```sh su - ``` Remplacez `user` par votre nom d'utilisateur : ```sh echo -n 'user:' | tee -a /var/www/.auth.allow ``` Entrez votre mot de passe, confirmez, il sera affiché sous forme de hash. ```sh openssl passwd -apr1 | tee -a /var/www/.auth.allow ``` ```sh title="openssl passwd -apr1 | tee -a /var/www/.auth.allow" Password: Verifying - Password: $apr1$t.VOQfZL$bHLajKSa1gA34tgAVWA2l/ ``` Vérifiez la configuration de l'utilisateur : ```sh cat /var/www/.auth.allow ``` ```sh title="cat /var/www/.auth.allow" user_name:$apr1$9WppBYUH$L4S3jfDRXqfcAJ1mD93KD/ ``` ```sh chown root:www-data /var/www/.auth.allow && chmod 640 /var/www/.auth.allow ``` **La compression gzip est optionnelle et est déconseillée si le site utilise https.** ```sh sed -i '/gzip_/ s/#\ //g' /etc/nginx/nginx.conf ``` ```sh nginx -t && systemctl restart nginx ``` Vous pouvez vous connecter au partage webdav (/var/www/html) en utilisant le lien (http://IP_serveur/webdav)