Raspberry WebDAV

Raspberry WebDAV

Conform Wikipedia, “WebDAV (Web Distributed Authoring and Versioning) este o extensie a Protocolului de transfer hypertext (HTTP) care permite clienților să efectueze operațiuni la distanță de creare a conținutului Web. WebDAV este definit în RFC 4918 de către un grup de lucru al grupului de lucru pentru ingineria Internetului”. În acest articol am să vă arăt cum se instalează și configurează un server WebDAV pentru a partaja conținut în rețea cu ajutorul unui Raspberry Pi. Va fi foarte simplu!

Instalare Raspberry Pi WebDAV server

Pentru început trebuie să avem un Raspberry Pi deja instalat și configurat. Dacă nu știți cum să faceți acest lucru, puteți urma tutorialele de mai jos:

– Instalare Raspbian – 7Hub

– Configurare Raspbian – 7Hub

Dacă nu aveți un mouse, o tastatură și un monitor, atunci va trebui să faceți o configurare headless. În articolul Headless Raspberry Pi – 7Hub veți vedea cum puteți face asta.

Pentru că WebDAV este un serviciu ce funcționează cu ajutorul protocolului HTTP, avem nevoie de instalarea unui server Web. Pentru Linux, inclusiv Raspbian, cele mai utilizate Web Servere sunt Apache și Nginx. Eu am să vă arăt cum se face o instalare de Apache Web Server. Apoi voi merge mai departe cu instalarea modulelor necesare și configurarea WebDAV.

Instalare Apache

Pentru început am să verific dacă sunt necesare update-uri.

sudo apt update 

și

sudo apt upgrade -y 

iar pentru instalarea Apache am să rulez următoarea comandă:

sudo apt install apache2 -y 

Da. Asta a fost tot ce trebuie să facem pentru a avea un Web Server Apache. Prea simplu?

Să pornim și serverul.

sudo systemctl start apache2 

Acum, dacă deschidem un browser web și introducem adresa IP, putem să verificăm dacă serverul funcționează. Dacă serverul funcționează, o să putem vedea o pagina cu titlul Apache. În cazul în care pagina nu se încarcă, ceva nu a fost făcut bine și va trebui să reluați pașii de până aici.

Această pagina inițială nu ne va folosi, așa că va trebui să o închidem. Înainte să facem acest lucru trebuie să vă spun că pe un server Apache putem rula un număr nelimitat de site-uri Web, totul fiind limitat doar de resursele disponibile. Fiecare site Web are un fișier de configurare. Pentru a închide pagina va trebui, de fapt, să închidem site-ul. Acest lucru se face prin comanda:

sudo a2dissite 000-default 
Configurare site WebDAV

Acum va trebui să configurăm site-ul WebDAV pentru Apache în calea /var/www/webdav. Așadar, vom crea un fișier de configurare pentru site în calea /etc/apache2/sites-available/:

cd /etc/apache2/sites-available/ 

Fișierul de configurare al site-ului va fi creat cu comanda:

sudo nano webdav.conf 

Acest fișier pentru site-ul nostru WebDAV trebuie să aibă următorul conținut:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        Servername webdav.local

        DocumentRoot /var/www/webdav
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/webdav/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
Alias /data /var/www/webdav/data
<Location /data>
    DAV On
</Location>
</VirtualHost>
 

În fișierul de configurare am specificat calea, /var/www/webdav, unde va fi găzduit site-ul, dar și calea unde se vor salva fișierele, /var/www/webdav/data. Momentan nu există folderele webdav și nici data, dar le vom crea acum:

sudo mkdir /var/www/webdav 

și

sudo mkdir /var/www/webdav/data 

Mai trebuie să schimbăm drepturile pe aceste foldere către Apache. Apache în Linux folosește un cont de utilizator pentru a putea funcționa. Acesta este www-data.

sudo chown www-data.www-data /var/www/webdav
sudo chown www-data.www-data /var/www/webdav/data/
 

Activarea WebDAV în Apache constă în activarea unui modul care se face prin comanda:

sudo a2enmod dav_fs 

Să repornim serverul și să verificăm ce am făcut.

sudo systemctl restart apache2 

După repornirea serverului, mergem într-un browser Web și tastăm adresa http://raspberry/data/ . Va apărea o pagină similară cu cea de mai jos. În acest moment avem un Raspberry Pi WebDAV server funcțional.

WebDAV page 1

Utilizare WebDAV server

Acum avem un serverWebDAV funcțional. Dar cum îl putem folosi? Simplu. Cu ajutorul Windows File Explorer, pur și simplu adăugăm o locație din rețea. Am să vă detaliez pas cu pas cum am să fac acest lucru.

Deschideți un Windows File Explorer și pe This PC faceți un click dreapta de mouse și alegeți Add a network location, exact ca în imaginile de mai jos.

File Explorer 1
File Explorer 2

Va apărea un Wizard care ne va ajuta să adăugam o conexiune la serverul nostru WebDAV. Apăsăm pe butonul Next pentru următorii doi pași.

Network location 1
Network location 2

Atunci când se solicită Internet or network address, vom introduce adresa noastră, exact ca în browser, http://raspberry/data/ . Așa cum vedeți, putem să ne conectăm la un server WebDAV local sau la unul de pe internet; îl putem accesa chiar pe al nostru prin internet. Acest lucru este posibil prin configurarea unor rute în routerul pe care îl avem. Acum ne vom axa doar pe un server WebDAV din rețeaua locală. După ce am adăugat adresa, apăsăm Next.

Network location 3

Pentru a fi ușor de identificat în lista din File Explorer, putem da și un nume. Eu am să denumesc această conexiune WebDAV. Nu uitați să dați Next.

Network location 4

Aproape am terminat. Apăsați butonul Finish.

Network location 5

După ce apăsați butonul Finish, se va deschide automat fereastra cu locația unde putem salva fișierele pe server. Eu am creat un fișier cu numele test.txt, în care am scris “Hello World!!!”.

WebDAV location

Haideți să vedem cum se vede și dintr-un browser web.

Http WebDAV 1
Http WebDAV 2

Acesta a fost proiectul de creare a unui Raspberry Pi WebDAV server. Dacă aveți întrebări, nu ezitați să îmi scrieți.

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!