Lezione n.8 del 30/11/2007 ========================== Argomenti --------- * Aspetti preliminari - architettura di riferimento - cenni al protocollo HTTP - Uniform Resource Identifier (URI) * Configurazione del server web Apache - file di configurazione - invocazione del server - processi di Apache - corrispondenza richieste/filesystem (mapping) * Modifica del file di configurazione - impostazioni fondamentali . direttive Listen, ServerRoot, KeepAlive, KeepAliveTimeout, ServerName - impostazioni di mapping . direttive DocumentRoot, Alias, UserDir, DirectoryIndex, sezione Directory e cenni alla content negotiation - impostazioni di logging . direttive ErrorLog, LogLevel, LogFormat, CustomLog - gestione dei processi . direttive MinSpareServers, MaxSpareServers, StartServers, MaxClient, MaxRequestsPerChild, User, Group - gestione dei thread . direttive ThreadsPerChild, MinSpareThreads, MaxSpareThreads, ServerLimit * Virtual Host - definizione e classificazione - name-based virtual host . direttiva NameVirtualHost, blocco VirtualHost . file di configurazione . modifica del file /etc/hosts.conf Riferimenti ::::::::::: * URI e protocollo HTTP su wikipedia - http://en.wikipedia.org/wiki/Uniform_Resource_Identifier - http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol * Documentazione ufficiale server web Apache2 - http://httpd.apache.org/docs/2.0/ - http://httpd.apache.org/docs/2.0/mpm.html - http://httpd.apache.org/docs/2.0/vhosts/ * Dispensa 'Amministrazione di un Sistema UNIX in Rete', Capitolo 15 Esercizio --------- * Da utente 'root' - impostare la cartella utente a 'www' * Da utente 'osor' - creare nella propria home una cartella 'www' - creare dentro 'www' una sottocartella 'data' - scompattare l’archivio 'sample-html.tar.bz2' dentro 'data' - cambiare i diritti di data in modo che . sia possibile visualizzare 'info.txt' attraverso il collegamento in 'index.html' . non sia possibile accedere a 'info.txt' dall’indirizzo della cartella che lo contiene (data) * Da utente 'root' - impedire l’uso delle cartelle utenti . vedere la diversa risposta del server - attraverso una sezione virtualhost - modificare la DocumentRoot in modo che la struttura definita al punto precedente sia la radice del server - definire un alias '/another/way/to' che si riferisce alla DocumentRoot originale - aggiungere un virtualhost name-based 'provahost' con document root a piacere (diversa dalla precedente) - testare la coesistenza dei due siti - modificare i log in modo da salvarli nella home di 'osor' - limitare i log ai livelli superiori a error Soluzione --------- * Da utente 'root' - aggiungere nel file di configurazione di apache la riga UserDir www * Da utente 'osor' (a partire dalla propria home) mkdir -p www/data chmod -R o+rx www cd www/data tar xjvf ../../simple-html.tar.bz2 chmod o-r www/data/ * Da utente 'root' (ricordarsi di inviare il segnale -HUP al server o riavviarlo dopo aver cambiato il file di configurazione) - aggiungere nel file di configurazione di apache la riga seguente UserDir DISABLED . il server risponde con un errore 404 (Not Found) - fare in modo che nel file /usr/local/etc/apache22/httpd.conf siano presenti le righe seguenti DocumentRoot /home/utente/www Alias /another/way/to /home/utente/www - forzare il riaggiornamento della pagina e/o svuotare la cache del browser - aggiungere al file /usr/local/etc/apache22/extra/httpd-vhosts.conf ServerName provahost DocumentRoot /var/www/apache2-default ErrorLog /home/utente/server.log LogLevel error - aggiungere il nome 'provahost' al file 'hosts' cat "127.0.0.1 provahost" >> /etc/hosts