# 🆖 Installation de Nginx + Webdav sur debian 11

Dans 
Publié 2021-10-21


# 🆖 Installation de Nginx

Pour avoir les modules nécessaires, il faut installer nginx dans sa version complète:

sudo apt update && sudo apt install nginx-full

Ca y'est ! C'est fini 😪, votre site est accessible dans votre navigateur à l'adresse http://IP_de_votre_machine

  • Ici on va éditer directement le fichier défaut, mais on pourrait très bien le copier et renommer:
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

sudo nano /etc/nginx/sites-enabled/site.conf
/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 se trouve votre index.html, par exemple).

Ligne 18 location ^~ /webdav { dit que pour atteindre /var/www/html je rentre l'ip ou le nom de domaine de ma machine + /webdav = http://172.16.30.30/webdav par exemple.

Ligne 20 Définit le chemin du fichier d'authentification.


# Création du fichier d'authentification

Passage en root

su -

Remplacez user par votre nom d'utilisateur

echo -n 'user:' | tee -a /var/www/.auth.allow 

Définir le mot de passe de l'utilisateur:
Rentrez votre mot de passe, confirmez, il s'affichera sous forme de hash.

openssl passwd -apr1 | tee -a /var/www/.auth.allow
openssl passwd -apr1 | tee -a /var/www/.auth.allow
Password:
Verifying - Password:
$apr1$t.VOQfZL$bHLajKSa1gA34tgAVWA2l/

# 📚 Définition des autorisations du fichier d'authentification

chown root:www-data /var/www/.auth.allow && chmod 640 /var/www/.auth.allow

# 💹 Activer la compression avec gzip (économise la bande passante)

La compression gzip est OPTIONNELLE et est déconseillé si le site utilise https.

sed -i '/gzip_/ s/#\ //g' /etc/nginx/nginx.conf

# 🔄 Tester et redémarrer nginx

nginx -t && systemctl restart nginx