Web serving

Questo capitolo include applicazioni che rispondono a richieste aventi origine da client LAN, intranet e internet. Sono coperte in particolare richieste HTTP e FTP.

Apache-2.0.53

Introduzione a Apache

Il pacchetto Apache contiene un server HTTP open-source. Esso è utile per creare siti web intranet locali o eseguire operazioni pesanti di web serving.

Informazioni sul pacchetto

Installazione di Apache

Per ragioni di sicurezza si incoraggia fortemente l'esecuzione del server come utente e gruppo senza privilegi. Creare il seguente gruppo e utente usando i seguenti comandi (come root):

groupadd apache &&
useradd -c "Apache Server" -d /dev/null -g apache -s /bin/false apache

La seguente patch definirà il layout delle directory di destinazione e, tra di esse, la directory di costruzione su /usr/lib/apache/build. Questo permetterà ai moduli aggiunti a Apache di essere configurati senza errori. Applicare la patch:

patch -Np1 -i ../httpd-2.0.53-config-1.patch

Costruire e installare Apache eseguendo i seguenti comandi:

./configure --enable-layout=FHS --enable-mods-shared=all &&
make

Ora, come utente root:

make install &&
chown root:root /usr/sbin/{apxs,apachectl,dbmmanage,envvars-std,envvars} \
    /usr/include/apache/* /usr/lib/apache/httpd.exp \
    /usr/share/man/man1/{dbmmanage,htdigest,htpasswd}.1 \
    /usr/share/man/man8/{ab,apachectl,apxs,httpd}.8 \
    /usr/share/man/man8/{logresolve,rotatelogs,suexec}.8 &&
chown -R apache:apache /srv/www

Spiegazioni dei comandi

--with-expat=/usr: usa il programma expat installato dal sistema. Se si ha installato expat e non si usa questo switch l'installazione di Apache potrebbe sovrascrivere alcuni file dall'installazione expat.

--enable-mods-shared=all: i moduli devono essere compilati e usati come Dynamic Shared Objects (DSO), così possono essere inclusi ed esclusi dal server usando le direttive di configurazione run-time.

--enable-ssl: usare questo switch per creare il modulo mod_ssl e abilitare il supporto SSL.

chown root:root ...: questo comando cambia il proprietario di alcuni file installati, risultato della costruzione del pacchetto come utente diverso da root.

chown -R apache:apache /srv/www: per default il processo di installazione installa file (documentazione, messaggi di errore, icone di default, ecc.) con proprietario l'utente che ha estratto i file dal file tar. Se si vuol cambiare il proprietario a un altro utente bisogna farlo a questo punto. La sola necessità è che le directory del documento devono essere accessibili dal processo httpd con permessi (r-x) e i file devono essere leggibili (r--) dall'utente apache.

Configurazione di Apache

File di configurazione

/etc/apache/*

Informazine di configurazione

Il file di configurazione principale si chiama httpd.conf. Modificarlo per eseguire il server come utente dedicato:

sed -i -e "s%User nobody%User apache%" \
       -e "s%^Group #-1%Group apache%" \
    /etc/apache/httpd.conf

Vedere http://httpd.apache.org/docs-2.0/configuring.html per istruzioni dettagliate sulla personalizzazione del proprio server HTTP Apache.

C'è un problema con il modulo ISAPI DSO causato dalla compilazione con GCC-3.4.1. Commentare il modulo dal file di configurazione con il seguente comando:

sed -i -e "s/^LoadModule isapi_module/# &/" \
    /etc/apache/httpd.conf

Se si vuole che il server Apache parta automaticamente quando il sistema è avviato installare l'init script /etc/rc.d/init.d/apache incluso nel pacchetto blfs-bootscripts-6.0.

make install-apache

Contenuti

Programmi installati: ab, apachectl, apr-config, apu-config, apxs, checkgid, dbmmanage, htdbm, htdigest, htpasswd, httpd, instdso.sh, logresolve and rotatelogs
Librerie installate: libapr-0.[so,a], libaprutil-0.[so,a] e /usr/lib/apache/*.so
Directory installate: /etc/apache, /srv/www, /usr/include/apache, /usr/lib/apache e /var/log/apache

Brevi descrizioni

ab

è un tool per fare il benchmarking del proprio server Apache HTTP.

apachectl

è un front end al server HTTP Apache, disegnato per aiutare l'amministratore a controllare il funzionamento del demone Apache httpd.

apxs

è un tool per costruire e installare moduli di estensione per il server Apache HTTP.

dbmanage

è usato per creare e aggiornare i file formato DBM usati per archiviare nomi utenti e password per l'autenticazione di base degli utenti HTTP.

htdigest

è usato per creare e aggiornare i flat-file usati per archiviare nomi utenti, reami e password per classificare l'autenticazione degli utenti HTTP.

htpasswd

è usato per creare e aggiornare i flat-files usati per archiviare nomi utenti e password per autenticazione base degli utenti HTTP.

httpd

è il programma server HTTP Apache.

instdso.sh

è uno script che installa i moduli Apache DSO.

logresolve

è un programma di post-processamento per risolvere indirizzi IP in file log di accesso Apache.

rotatelogs

è un semplice programma da usare in congiunzione con la funzione di piped log file di Apache.