# 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)