User Tools

Site Tools


doc:appunti:linux:lezioni:pistoia

Configurazione di un server web

Appunti dalla lezione del 15 gennaio 2008:

Configurazione di un server web su sistema Debian GNU/Linux

Panoramica sulle distribuzioni Linux

Debian

Debian è l'unica distribuzione interamente guidata dalla comunità, vanta una comunità di qualche migliaio di sviluppatori ed è famosa per il rigore con cui aderisce agli standard ed alla filosofia del software libero. E' la distribuzione che conta il maggior numero di pacchetti disponibili e che è stata adattata al maggior numero di piattaforme hardware.

Ubuntu

Ubuntu è derivata da Debian, risultato dell'investimento del miliardario sudafricano Mark Shuttleworth. Orientata al settore desktop, è caratterizzata da rilasci frequenti, quindi versioni molto aggiornate del software. Installazione semplificata e riconoscimento dell'hardware automatico.

Red Hat

Red Hat è una delle prima distribuzioni commerciali di GNU/Linux, orientata al segmento enterprise, per chi vuole un prodotto con un supporto commerciale.

Fedora

Fedora è una distribuzione derivata da Red Hat, è il risultato dello sforzo comunitario in reazione alla decisione di Red Hat di abbandonare l'utenza privata per concentrasi solo su quella commerciale di tipo enterprise.

Debian

La distribuzione Debian non ha una politica commerciale di rilasci, la nuova versione esce solo quando è pronta. Per questo motivo la versione stable non contiene in generale software di ultima generazione, ma di 6/12 mesi. La comunità garantisce per la versione stable solo aggiornamenti di sicurezza e correzione di bug gravi, ma in generale nuove versioni di un programma non entreranno in essa. Per chi ha bisogno di software più aggiornato o chi vuole comunque sperimentare esiste la versione testing che offre comunque un livello di affidabilità di tutto rispetto. Attualmente la versione stable 4.1 ha nome Etch, mentre le versione testing ha nome Lenny.

Per la versione testing non ha senso avere dei CD di installazione, si utilizza un CD minimale detto netinst e tutto il resto del software viene prelevato via rete.

Ricerca di un pacchetto

La prima difficoltà nell'installare un software in Debian è la ricerca del nome del pacchetto che si desidera. Non è compito facile visto che ad oggi Debian offre oltre 20mila pacchetti software.

La pagina packages di www.debian.org offre uno strumento per la ricerca dei pacchetti. Per fortuna non bisogna preoccuparsi delle dipendenze: se un pacchetto per funzionare ha bisogno di altro software, questo verrà installato automaticamente.

La ricerca per la parola chiave apache nella distribuzione testing ha prodotto come risultato il pacchetto apache_1.3.34-4.1_i386.deb, dobbiamo invece cercare la nuova versione e quindi la parola apache2.

Notiamo che apache2 in realtà è un pacchetto fittizio. Esistono diverse incarnazioni del programma Apache 2, ognuna adatta ad uno scopo specifico, scegliendo il generico pacchetto apache2 in realtà viene installato il pacchetto apache2-mpm-worker, ed è qeusto pacchetto che contiene effettivamente l'eseguibile del programma. Questo avviene grazie al meccanismo delle dipendenze fornito dai pacchetti Debian. Sempre per via delle dipendenze altri pacchetti vengono installati automaticamente:

  • apache2-mpm-worker l'incarnazione più performante di Apache
  • apache2.2-common file di configurazione, etc.
  • apache2-utils programmi accessori

Installazione

Prima di installare un pacchetto Debian dobbiamo verificare alcune cose:

  1. Il sistema deve sapere dove prelevare i pacchetti via rete (il repository).
  2. Eventualmente si deve indicare il proxy HTTP
  3. Bisogna prelevare l'elenco aggiornato dei pacchetti presenti sul repository Debian.

Il repository si configura nel file /etc/apt/sources.list, questo è il contenuto tipico:

deb      http://ftp.us.debian.org/debian/   lenny  main contrib non-free
deb-src  http://ftp.us.debian.org/debian/   lenny  main contrib non-free

La prima colonna indica il tipo di pacchetti presenti: pacchetti precompilati (deb) oppure pacchetti con i sorgenti (deb-src), quindi viene riportato l'URL. Bisogna anche indicare la versione della distribuzione desiderata per nome (lenny, come in questo caso) oppure per stato (testing). L'ultima parte indica che vogliamo attingere all'archivio principale (main), ma anche all'archivio dei pacchetti non-free e contrib, cioè quei pacchetti che non fanno propriamente parte di Debian magari per qualche restrizione sulla licenza d'uso.

Se l'accesso a internet avviene tramite proxy HTTP si esegue un comando del tipo:

export http_proxy="http://192.168.50.254:3128/

Se si usa la distribuzione testing è opportuno aggiornare periodicamente l'elenco dei pacchetti disponibili e aggiornare i pacchetti all'ultima versione. Queste operazioni andrebbero effettuate almeno una volta al mese:

apt-get update
apt-get upgrade

Se invece si utilizza la distribuzione stable l'operazione di aggiornamento va fatta solo nel caso che venga annunciato sul sito www.debian.org.

Sistemati tutti i prerequisiti, è estremamente semplice installare un pacchetto da riga di comando:

apt-get install apache2

Rimozione di un pacchetto

Alcuni comandi interessanti per gestire i pacchetti.

Per vedere quali pacchetti sono installati sul sistema si usa dpkg –list

dpkg --list

Vedere quali file sono stati installati da un pacchetto si usa dpkg -L nome_pacchetto:

dpkg -L apache2.2-common
/.
/etc
/etc/default
/etc/default/apache2
/etc/cron.daily
/etc/cron.daily/apache2
/etc/init.d
...

Per rimuovere un pacchetto, compresi i file di configurazione, c'è il comando dpkg –purge nome_pacchetto:

dpkg --purge apache2.2-common

Apache2

Terminata l'installazione del programma, il servizio è già in esecuzione, lo si controlla con il comando ps aux:

ps uax | grep apache
root      9015  0.0  1.4  21780  7496 ?        Ss   Jan13   0:00 /usr/sbin/apache2 -k start
www-data  9028  0.0  1.1  21932  5944 ?        S    Jan13   0:00 /usr/sbin/apache2 -k start
www-data  9029  0.0  1.1  21932  5864 ?        S    Jan13   0:00 /usr/sbin/apache2 -k start
www-data  9030  0.0  1.1  21932  5936 ?        S    Jan13   0:00 /usr/sbin/apache2 -k start
www-data  9031  0.0  0.9  21932  4632 ?        S    Jan13   0:00 /usr/sbin/apache2 -k start
www-data  9042  0.0  1.1  21932  5820 ?        S    Jan13   0:00 /usr/sbin/apache2 -k start
www-data 21993  0.0  0.9  21932  4632 ?        S    Jan14   0:00 /usr/sbin/apache2 -k start
root     30981  0.0  0.1   1636   516 pts/0    R+   10:10   0:00 grep apache

Il programma scrive il proprio log in /var/log/apache2/access.log, per vedere in tempo reale gli accessi fatti al server web si usa il comando tail -f:

tail -f /var/log/apache2/access.log
88.44.185.233 - - [16/Jan/2008:10:00:31 +0100] "GET /wiki/lib/tpl/sidebar/images/sidebar-border.gif
    HTTP/1.1" 200 34 "http://paros.rigacci.org/wiki/lib/exe/css.php"
    "Mozilla/5.0 (X11; U; Linux i686; it; rv:1.8.1.11) Gecko/20071204 Ubuntu/7.10 (gutsy) Firefox/2.0.0.11"

Per fermare e far ripartire il servizio apache esiste uno script nella directory /etc/init.d/:

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

Molte le opzioni disponibili: stop, start, restart, reload, … Utile l'opzione reload che rilegge il file di configurazione senza fermare il programma.

I file di configurazione sono contenuti nella directory /etc/apache2/, la struttura di questa directory è stabilita dal pacchettizzatore Debian, non è obbligatorio seguirla, ma è altamente consigliato.

/etc/apache2/sites-available/ Contiene un file di configurazione per ogni sito web.
/etc/apache2/sites-enabled/ Se il sito web è attivo, si crea un link al corrispondente file in sites-available .
/etc/apache2/mods-available/ File di configurazione per i moduli aggiuntivi di Apache (es PHP).
/etc/apache2/mods-enabled/ Contiene dei link simbolici a mods-available per ogni modulo attivo.

Dopo l'installazione di apache2 l'unico sito web disponibile è definito dal file /etc/apache2/sites-available/default, il file è suddiviso in sezioni e comprende diverse direttive. La sintassi del file di configurazione è documentata sul sito httpd.apache.org

Installazione PHP

Il linguaggio PHP estende le capacità del server web, viene distribuito com un modulo per Apache.

Cercano tra i pacchetti Debian si trova il pacchetto php5, si tratta in realtà di un pacchetto fittizio che tramite il meccanismo delle dipendenze installa:

  • libapache2-mod-php5 il vero pacchetto che contiene il modulo per Apache
  • php5-common

Al termine dell'installazione la configurazione di Apache è già effettuata grazie ai due file di configurazione:

/etc/apache2/mods-available/php5.conf
/etc/apache2/mods-available/php5.load

I file di configurazione sono attivi grazie ai due link omonimi che si trovano nella directory /etc/apache2/mods-enabled/. Per rendere effettiva la configurazione è sufficiente dare il comando

/etc/init.d/apache2 reload

Per testare il funzionamento del modulo è sufficiente creare un file nella DocumentRoot, ad esempio /var/www/prova.php:

<cope php> <?php phpinfo(); ?> </code>

Puntando un browser sull'indiritto del server web http://ip_address/prova.php si ottiene l'output della funzione phpinfo().

doc/appunti/linux/lezioni/pistoia.txt · Last modified: 2008/01/18 01:00 by 127.0.0.1