Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gsr:laboratoare:laborator-07 [2016/12/08 11:27]
alexandru.carp [SSL / TLS]
gsr:laboratoare:laborator-07 [2016/12/08 20:39] (current)
alexandru.carp
Line 1: Line 1:
 ====== Laborator 07: Servicii web ====== ====== Laborator 07: Servicii web ======
  
-Documentatie:​ http://​httpd.apache.org/​docs/​2.2/​+<​note>​Documentatie:​ http://​httpd.apache.org/​docs/​2.2/​</​note>​
  
-==== Instalare Apache si configurari de baza ====+===== Instalare Apache si configurari de baza =====
  
   * Instalati serverul Apache (pachetul **apache2**).   * Instalati serverul Apache (pachetul **apache2**).
Line 9: Line 9:
   * Apoi, verificati functionarea acestuia folosind un browser web. Va veti conecta pe URL-ul http://​localhost   * Apoi, verificati functionarea acestuia folosind un browser web. Va veti conecta pe URL-ul http://​localhost
  
-=== Site default ===+==== Site default ​====
  
   * Asa cum ati observat anterior, serverul Apache serveste in mod implicit un fisier HTML.    * Asa cum ati observat anterior, serverul Apache serveste in mod implicit un fisier HTML. 
Line 19: Line 19:
   * Modificati fisierul gasit anterior astfel incat sa contina mesajul "GSR web services"​.   * Modificati fisierul gasit anterior astfel incat sa contina mesajul "GSR web services"​.
  
-=== Listening ports ===+==== Listening ports ====
  
   * Pe ce port asculta in mod implicit serverul Apache? Investigati folosind ''​netstat''​.   * Pe ce port asculta in mod implicit serverul Apache? Investigati folosind ''​netstat''​.
Line 25: Line 25:
   * Modificati portul astfel incat Apache sa asculte pe 8080.   * Modificati portul astfel incat Apache sa asculte pe 8080.
      * Hint: ''/​etc/​apache2/​ports.conf''​      * Hint: ''/​etc/​apache2/​ports.conf''​
-     * Hint: Nu uitati sa modificati si ''​NameVirtualHost''​+     * Hint: Nu uitati sa modificati si in ''​VirtualHost''​
  
   * Verificati folosind ''​netstat'',​ apoi un browser.   * Verificati folosind ''​netstat'',​ apoi un browser.
Line 32: Line 32:
  
  
-==== Alti clienti HTTP ====+===== Alti clienti HTTP =====
  
 Desi in majoritatea cazurilor folosim un browser in mod grafic pentru a naviga, putem folosi si clienti in mod text (interactiv sau non-interactiv). Acestia sunt utili mai ales in automatizare. Desi in majoritatea cazurilor folosim un browser in mod grafic pentru a naviga, putem folosi si clienti in mod text (interactiv sau non-interactiv). Acestia sunt utili mai ales in automatizare.
  
-=== wget ===+==== wget ====
  
 Un astfel de client in mod text, non-interactiv,​ este **wget**. Un astfel de client in mod text, non-interactiv,​ este **wget**.
Line 42: Line 42:
   * Folositi ''​wget''​ pentru a descarca fisierul ''​index.html''​ servit de Apache. Ca parametru pentru ''​wget''​ veti folosi acelasi URL ca si in browser.   * Folositi ''​wget''​ pentru a descarca fisierul ''​index.html''​ servit de Apache. Ca parametru pentru ''​wget''​ veti folosi acelasi URL ca si in browser.
  
-== Descarcare recursiva ==+=== Descarcare recursiva ​===
  
   * Creati urmatoarea ierarhie de fisiere in ''/​var/​www/​html'':​   * Creati urmatoarea ierarhie de fisiere in ''/​var/​www/​html'':​
Line 62: Line 62:
     * Specificati sa NU fie descarcate fisierele ale caror nume incepe cu ''​index.html''​. Hint: ''​man wget'',​ ''/​reject''​.     * Specificati sa NU fie descarcate fisierele ale caror nume incepe cu ''​index.html''​. Hint: ''​man wget'',​ ''/​reject''​.
  
-== Autentificare folosind wget ==+=== Autentificare folosind wget ===
  
   * Folosind ''​wget''​ incercati sa descarcati ce este la adresa ''​http://​repository.grid.pub.ro/​cs/​gsr/''​.   * Folosind ''​wget''​ incercati sa descarcati ce este la adresa ''​http://​repository.grid.pub.ro/​cs/​gsr/''​.
Line 71: Line 71:
     * Sa faceti ca ''​wget''​ sa va ceara parola. Hint: ''​man wget'',​ ''/​ask-password''​.     * Sa faceti ca ''​wget''​ sa va ceara parola. Hint: ''​man wget'',​ ''/​ask-password''​.
  
-=== netcat (nc) ===+==== netcat (nc) ====
  
 De multe ori, in debugging, este util sa observati sau sa interveniti direct asupra datelor schimbate intre client si server. Un utilitar care ne ajuta in acest scop este **netcat** (comanda ''​nc''​). ​ De multe ori, in debugging, este util sa observati sau sa interveniti direct asupra datelor schimbate intre client si server. Un utilitar care ne ajuta in acest scop este **netcat** (comanda ''​nc''​). ​
Line 87: Line 87:
     * Hint: ''​echo'',​ pipe     * Hint: ''​echo'',​ pipe
  
-==== Userdir ====+===== Userdir ​=====
  
 Server-ul Apache permite utilizatorilor sa serveasca fisiere din propriile directoare home. Fisierele trebuie stocate in ''/​home/​username/​public_html'',​ iar acestea vor fi accesate folosind un URL de forma ''​http://​server/​~username''​. Server-ul Apache permite utilizatorilor sa serveasca fisiere din propriile directoare home. Fisierele trebuie stocate in ''/​home/​username/​public_html'',​ iar acestea vor fi accesate folosind un URL de forma ''​http://​server/​~username''​.
Line 100: Line 100:
     * Incercati din nou sa accesati URL-ul.     * Incercati din nou sa accesati URL-ul.
  
-==== PHP ===+===== PHP ====
  
   * Creati in ''/​var/​www/​html''​ un fisier cu numele ''​index.php''​ care sa contina un cod PHP simplu (de exemplu, sa afiseze un mesaj):   * Creati in ''/​var/​www/​html''​ un fisier cu numele ''​index.php''​ care sa contina un cod PHP simplu (de exemplu, sa afiseze un mesaj):
Line 109: Line 109:
   * Apoi, dintr-un browser in mod grafic incercati sa accesati fisierul ''​index.php''​ de pe server. Ce observati? Script-ul PHP se ruleaza pe server? De ce?   * Apoi, dintr-un browser in mod grafic incercati sa accesati fisierul ''​index.php''​ de pe server. Ce observati? Script-ul PHP se ruleaza pe server? De ce?
  
-  * Instalati pachetul corespunzator modulului PHP pentru Apache (''​libapache2-mod-php5''​).+  * Instalati pachetul corespunzator modulului PHP pentru Apache (''​libapache2-mod-php''​).
   * Verificati ca modulul a fost activat. Hint: ''/​etc/​apache2/​mods-enabled''​.   * Verificati ca modulul a fost activat. Hint: ''/​etc/​apache2/​mods-enabled''​.
   * Accesati din nou fisierul ''​index.php''​. Ce observati acum?   * Accesati din nou fisierul ''​index.php''​. Ce observati acum?
  
-==== Autentificare basic ====+===== Autentificare basic =====
  
 In anumite cazuri, este util sa restrictionam accesul catre anumite directoare ale site-ului. O modalitate este folosind feature-ul de autentificare din protocolul HTTP. In anumite cazuri, este util sa restrictionam accesul catre anumite directoare ale site-ului. O modalitate este folosind feature-ul de autentificare din protocolul HTTP.
Line 129: Line 129:
   * Restartati serviciul Apache si verificati ca incercand sa accesati, din browser, directorul ''​secret'',​ se cere autentificare.   * Restartati serviciul Apache si verificati ca incercand sa accesati, din browser, directorul ''​secret'',​ se cere autentificare.
  
-==== Virtual Hosts ====+===== Virtual Hosts =====
  
-=== Configurare de baza === +==== Configurare de baza ====
- +
-  * Instalati serverul Apache.+
  
   * In ''/​etc/​hosts'',​ adaugati 2 alias-uri, astfel incat host-urile ''​gsr.ro''​ si ''​www.gsr.ro''​ sa fie mapate pe adresa IP ''​127.0.0.1''​   * In ''/​etc/​hosts'',​ adaugati 2 alias-uri, astfel incat host-urile ''​gsr.ro''​ si ''​www.gsr.ro''​ sa fie mapate pe adresa IP ''​127.0.0.1''​
Line 154: Line 152:
     * Fisierele de log pentru acest site vor fi in ''/​var/​log/​apache2/​gsr.ro.log''​ si ''/​var/​log/​apache2/​gsr.ro.err.log'' ​     * Fisierele de log pentru acest site vor fi in ''/​var/​log/​apache2/​gsr.ro.log''​ si ''/​var/​log/​apache2/​gsr.ro.err.log'' ​
  
-<​solution -hidden -en><​code>​+<​code>​
 root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro
  
Line 184: Line 182:
         CustomLog /​var/​log/​apache2/​gsr.log combined         CustomLog /​var/​log/​apache2/​gsr.log combined
 </​VirtualHost>​ </​VirtualHost>​
-</code></​solution>+</​code>​
  
   * Activati site-ul ''​gsr.ro''​   * Activati site-ul ''​gsr.ro''​
Line 202: Line 200:
   * Testati accesand adresa ''​http://​gsr.ro''​ intr-un browser.   * Testati accesand adresa ''​http://​gsr.ro''​ intr-un browser.
  
-=== Alias-uri ===+==== Alias-uri ​====
  
   *Vom configura 2 tipuri de alias-uri:   *Vom configura 2 tipuri de alias-uri:
     * Alias-uri pentru partea de domeniu din URL.     * Alias-uri pentru partea de domeniu din URL.
     * Alias-uri pentru partea de cale (path) din URL.     * Alias-uri pentru partea de cale (path) din URL.
 +
 +=== Alias pentru domeniu ===
  
   * Pentru primul tip de alias-uri, configurati Virtual Host-ul ''​gsr.ro''​ astfel incat sa raspunda si la cereri pentru ''​www.gsr.ro''​   * Pentru primul tip de alias-uri, configurati Virtual Host-ul ''​gsr.ro''​ astfel incat sa raspunda si la cereri pentru ''​www.gsr.ro''​
     * Hint: ''​ServerAlias''​     * Hint: ''​ServerAlias''​
   * Testati accesand adresa ''​http://​www.gsr.ro''​ intr-un browser.   * Testati accesand adresa ''​http://​www.gsr.ro''​ intr-un browser.
 +  ​
 +=== Alias pentru URL path ===  ​
   ​   ​
   * Pentru al doilea tip de alias-uri, configurati Virtual Host-ul ''​gsr.ro''​ astfel incat la accesarea adresei ''​http://​gsr.ro/​config''​ sa fie afisat continutul directorului ''/​var/​www/​html/​gsr.ro/​configfiles''​.   * Pentru al doilea tip de alias-uri, configurati Virtual Host-ul ''​gsr.ro''​ astfel incat la accesarea adresei ''​http://​gsr.ro/​config''​ sa fie afisat continutul directorului ''/​var/​www/​html/​gsr.ro/​configfiles''​.
Line 217: Line 219:
   * Testati accesand adresa ''​http://​gsr.ro/​config''​ intr-un browser.   * Testati accesand adresa ''​http://​gsr.ro/​config''​ intr-un browser.
  
-<​solution -hidden -en><​code>​+<​code>​
 root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro/​configfiles root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro/​configfiles
  
Line 246: Line 248:
  ... waiting [Fri Jan 27 18:32:58 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts  ... waiting [Fri Jan 27 18:32:58 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts
 . .
-</code></​solution>+</​code>​
  
-=== Redirect ===+==== Redirect ​====
  
   * Configurati site-ul ''​gsr.ro''​ astfel incat la accesarea adresei ''​http://​gsr.ro/​redirect''​ sa fiti redirectati catre ''​http://​ocw.cs.pub.ro/​courses/​gsr''​.   * Configurati site-ul ''​gsr.ro''​ astfel incat la accesarea adresei ''​http://​gsr.ro/​redirect''​ sa fiti redirectati catre ''​http://​ocw.cs.pub.ro/​courses/​gsr''​.
Line 256: Line 258:
   * Testati accesand adresa ''​http://​gsr.ro/​redirect''​ intr-un browser.   * Testati accesand adresa ''​http://​gsr.ro/​redirect''​ intr-un browser.
  
-<​solution -hidden -en><​code>​+<​code>​
 root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro/​redirect root@mjolnir:​~#​ mkdir /​var/​www/​html/​gsr.ro/​redirect
 root@mjolnir:​~#​ echo "​redirect"​ > /​var/​www/​html/​gsr.ro/​redirect/​index.html root@mjolnir:​~#​ echo "​redirect"​ > /​var/​www/​html/​gsr.ro/​redirect/​index.html
Line 269: Line 271:
  ... waiting [Fri Jan 27 18:41:55 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts  ... waiting [Fri Jan 27 18:41:55 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts
 . .
-</code></​solution>+</​code>​
  
-=== Restrictionarea accesului pe baza adresei IP ===+==== Restrictionarea accesului pe baza adresei IP ====
  
   * Configurati Virtual Host-ul ''​gsr.ro''​ pentru a se permite accesul la acesta **doar** de la adresa ''​127.0.0.1''​.   * Configurati Virtual Host-ul ''​gsr.ro''​ pentru a se permite accesul la acesta **doar** de la adresa ''​127.0.0.1''​.
Line 282: Line 284:
     * Pe sistemul colegului, adaugati o intrare in ''/​etc/​hosts''​ pentru ''​restricted.gsr.ro'',​ care sa se mapeze cu adresa IP a sistemului vostru.     * Pe sistemul colegului, adaugati o intrare in ''/​etc/​hosts''​ pentru ''​restricted.gsr.ro'',​ care sa se mapeze cu adresa IP a sistemului vostru.
  
-<​solution -hidden -en><​code>​ +<​code>​
 root@mjolnir:​~#​ cat /​etc/​apache2/​sites-available/​gsr.ro.conf root@mjolnir:​~#​ cat /​etc/​apache2/​sites-available/​gsr.ro.conf
 <​VirtualHost *:80> <​VirtualHost *:80>
Line 308: Line 309:
  ... waiting [Fri Jan 27 19:27:56 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts  ... waiting [Fri Jan 27 19:27:56 2012] [warn] NameVirtualHost 172.16.7.133:​8080 has no VirtualHosts
 . .
-</code></​solution>+</​code>​
  
-==== mod_rewrite ====+===== mod_rewrite ​=====
  
 Modulul ''​rewrite''​ din Apache permite rescrierea URL-urilor din request-urile HTTP, dupa anumite reguli. Modulul ''​rewrite''​ din Apache permite rescrierea URL-urilor din request-urile HTTP, dupa anumite reguli.
gsr/laboratoare/laborator-07.1481189255.txt.gz · Last modified: 2016/12/08 11:27 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0