This is an old revision of the document!
Documentatie: http://httpd.apache.org/docs/2.2/
/etc/apache2/sites-available/000-default.conf
DocumentRoot
netstat
./etc/apache2/ports.conf
NameVirtualHost
netstat
, apoi un browser.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.
Un astfel de client in mod text, non-interactiv, este wget.
wget
pentru a descarca fisierul index.html
servit de Apache. Ca parametru pentru wget
veti folosi acelasi URL ca si in browser./var/www/html
:test/ |-- docs/ | |-- README.txt | |-- INSTALL.txt |-- scripts/ | |-- setup.sh | `-- install.sh `-- test.html
wget
, descarcati in mod recursiv tot ce este sub /var/www/html/test
.man wget
, /recursive
index.html
. Hint: man wget
, /reject
.wget
incercati sa descarcati ce este la adresa http://repository.grid.pub.ro/cs/gsr/
.man wget
, /user
.wget
sa va ceara parola. Hint: man wget
, /ask-password
.
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
).
Acesta deschide o conexiune catre un host, pe un port specificat (TCP sau UDP), apoi va trimite catre server toate datele primite pe standard input.
nc
, conectati-va pe localhost, portul 80.index.html
. Veti folosi protocolul HTTP 1.0:GET /index.html HTTP/1.0
\r\n\r\n
(doua Enter-uri).echo
, pipe
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
.
gsr
.public_html
si mai multe fisiere in interiorul acestuia.~gsr
. Este posibil?userdir
. Hint: a2enmod
/var/www/html
un fisier cu numele index.php
care sa contina un cod PHP simplu (de exemplu, sa afiseze un mesaj):<?php echo "Hello, world!"; ?>
index.php
de pe server. Ce observati? Script-ul PHP se ruleaza pe server? De ce?libapache2-mod-php5
)./etc/apache2/mods-enabled
.index.php
. Ce observati acum?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.
secret
in /var/www/html
..htaccess
, care sa specifice ca se doreste autentificare:AuthName "restricted" AuthType Basic AuthUserFile /usr/local/my.htpasswd Require valid-user
htpasswd
, creati un user bob
in fisierul /usr/local/my.htpasswd
apache2.conf
, setati directiva AllowOverride
la All
secret
, se cere autentificare./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
gsr.ro
.gsr.ro.conf
si se va afla in directorul /etc/apache2/sites-available
.gsr.ro
admin@gsr.ro
/var/www/html/gsr.ro
index.html
care sa afiseze mesajul This is gsr.ro
./var/log/apache2/gsr.ro.log
si /var/log/apache2/gsr.ro.err.log
gsr.ro
a2ensite
.http://gsr.ro
intr-un browser.gsr.ro
astfel incat sa raspunda si la cereri pentru www.gsr.ro
ServerAlias
http://www.gsr.ro
intr-un browser.gsr.ro
astfel incat la accesarea adresei http://gsr.ro/config
sa fie afisat continutul directorului /var/www/html/gsr.ro/configfiles
./var/www/html/gsr.ro/configfiles
. In interiorul acestuia, creati fisierele file1
, file2
si file3
.doc → /usr/share/doc
din fisierul de configurare al site-ului default al Apache.http://gsr.ro/config
intr-un browser.gsr.ro
astfel incat la accesarea adresei http://gsr.ro/redirect
sa fiti redirectati catre http://ocw.cs.pub.ro/courses/gsr
./var/www/html/gsr.ro/redirect
.index.html
care sa afiseze mesajul redirect
http://gsr.ro/redirect
intr-un browser.gsr.ro
pentru a se permite accesul la acesta doar de la adresa 127.0.0.1
.Order deny,allow
, care specifica ordinea in care sunt interpretate directivele Deny si Allow.http://gsr.ro/
de pe sistemul local si adresa http://restricted.gsr.ro
de pe sistemul unui coleg.gsr.ro
, adaugati un nou ServerAlias, cu numele restricted.gsr.ro
/etc/hosts
pentru restricted.gsr.ro
, care sa se mapeze cu adresa IP a sistemului vostru.
Modulul rewrite
din Apache permite rescrierea URL-urilor din request-urile HTTP, dupa anumite reguli.
userdir
.mod_userdir
astfel incat cererile catre URL-uri de forma gsr.ro/users/$username
sa fie rescrise in gsr.ro/~$username
.root@mjolnir:/etc/apache2/sites-available# a2enmod rewrite Enabling module rewrite. To activate the new configuration, you need to run: service apache2 restart root@mjolnir:/etc/apache2/sites-available# cat gsr.ro | tail -n 5 RewriteEngine On RewriteOptions Inherit RewriteRule ^/users/([^/]+)/?(.*) /~$1/$2 [R] RewriteRule ^/~/([^/]+)$ /~$1/ [R] </VirtualHost>