lunedì 9 luglio 2012

Appunti Reti di Calcolatori - Parte 3: APACHE

Installazione da sorgenti:
tar -xzvf <namefile.tar.gz>
./configure --prefix=</destination/path>
[make clear] se ci si sbaglia con la configurazione
make
make install
--with-mpm={}



Comandi:
apachectl start
apachectl stop
apachectl restart
I comandi si lanciano dalla cartella bin, che si trova nel percorso di installazione di Apache. Ad avvio avvenuto compare un messaggio di warning relativo all'impossibilità di stabilire un hostname per il computer che quindi potrà essere testato in locale digitando nella barra degli indirizzi del browser localhost:8080 (che corrisponde all'indirizzo ip http://127.0.0.1:8080/; la porta sulla quale Apache è in ascolto è descritta nel file httpd.conf, contenuto nella cartella conf).
Le pagine visualizzate sono quelle salvate nella cartella htdocs (in formato html e php).

Apache: Creazione di directory protetta da password

1) Modificare il file httpd.conf (localizzato solitamente in conf).
Cercare la parte riguardante la Directory e settare AllowOverride Authconfig (originariamente è impostato su None).
Indico ad Apache che posso ridefinire le modalità di accesso.

2) Creare il file .htaccess nella directory da proteggere

AuthType Basic (imposto l'autenticazione con password)
AuthName "Test" ("realm" di autenticazione)
AuthUserFile /<prefix>/htdocs/htpasswd (informazioni per autenticazione)
Require valid-user (qualsiasi utente che si autentica può accedere ai dati)

3) Creare il file .htpasswd nella cartella htdocs tramite il comando htpasswd -c .htpasswd <nome utente> (il comando a volte si trova sotto la cartella bin).

4) Ravviare Apache con il comando apachectl restart

Se puntiamo ora al materiale contenuto nella cartella, o alla cartella stessa, apparirà un pop-up che richiederà l'autenticazione.

Apache: Virtual Hosts
Possono essere sia name-based che ip-based, noi utilizziamo la prima.

1) Modificare il file <prefix>/conf/httpd.conf, decommentando la riga Include conf/extra/httpd-vhosts.conf 

2) Creare nella cartella htdocs le cartelle (sito1 e sito2) per i documenti dei virtual host, con i relativi file index.html

3) Modificare il file <prefix>/conf/extra/httpd-vhosts.conf inserendo l'elenco degli host virtuali:

NameVirtualHost *:8080 
<VirtualHost *:8080>
    ServerName localhost
</VirtualHost>
<VirtualHost *:8080>
    ServerAdmin webmaster@sito1.com
    DocumentRoot "<prefix>/htdocs/sito1"
    ServerName www.sito1.com
</VirtualHost>
<VirtualHost *:8080>
    ServerAdmin webmaster@sito2.com
    DocumentRoot "<prefix>/htdocs/sito2"
    ServerName www.sito2.com
    ErrorLog "logs/sito2_error.log"
    CustomLog "logs/site2_access.log" combined
</VirtualHost> 

4) Non avendo a disposizione un servizio DNS a pagamento, il test deve essere fatto tramite il comando nc.
Creare la connessione con la propria macchina: nc localhost 8080
Elaborare la richiesta HTTP: (dare linea vuota alla fine per sottoporre al server)
GET / HTTP/1.1
Host: www.sito1.com
Se tutto è andato a buon fine la risposta del server sarà:

HTTP/1.1 200 OK
Date: Tue, 10 Jul 2012 11:05:27 GMT
Server: Apache/2.2.17 (Unix) PHP/5.4.3
Last-Modified: Tue, 10 Jul 2012 10:55:05 GMT
ETag: "542e-2a-4c4779020ac74"
Accept-Ranges: bytes
Content-Length: 42
Content-Type: text/html

<html><body><h1>SITO 1</h1></body></html>

Nessun commento:

Posta un commento