23.6. Configurazione

Dopo aver installato Apache dovete intervenire sulla configurazione solo se avete delle esigenze o preferenze particolari. Apache si lascia configurare tramite oppure editando direttamente il file /etc/apache2/httpd.conf.

23.6.1. Configurazione con

Le impostazioni che potete effettuare sotto /etc/sysconfig/apache2, vengono scritte tramite nei file di configurazione di Apache. Le opzioni di configurazione dovrebbero essere sufficienti per la maggior parte dei casi. Ogni variabile è accompagnata da commenti che ne spiegano il significato.

23.6.1.1. File di configurazione propri

Invece di modificare direttamente il file di configurazione /etc/apache2/httpd.conf, la variabile APACHE_CONF_INCLUDE_FILES permette di indicare un file di configurazione proprio (per esempio httpd.conf.local, che verrà letto dal file di configurazione principale. In questo modo le vostre modifiche apportate alla configurazione rimangono valide anche se il file /etc/apache2/httpd.conf viene sovrascritto durante una reinstallazione.

23.6.1.2. Moduli

I moduli installati tramite si abilitano immettendo il nome del modulo nella lista indicata per la variabile APACHE_MODULES. Questa variabile la trovate nel file /etc/sysconfig/apache2 .

23.6.1.3. Flags

Con APACHE_SERVER_FLAGS potete impostare dei cosiddetti flag che abilitano o disabilitano determinate sezioni del file di configurazione. Per esempio, la sezione del file di configurazione incluso tra

<IfDefine someflag>
.
.
.
</IfDefine> 
    

viene abilitata solo se presso la variabile ACTIVE_SERVER_FLAGS è stato impostato il rispettivo flag: ACTIVE_SERVER_FLAGS = ... someflag ... In questo modo potrete eseguire dei test abilitando o disabilitando delle sezioni del file di configurazione.

23.6.2. Configurazione manuale

23.6.2.1. Il file di configurazione

Il file di configurazione /etc/apache2/httpd.conf consente di apportare delle modifiche che non è possibile realizzare tramite le impostazioni in /etc/sysconfig/apache2. Segue una serie di parametri impostabili nel suddetto file di configurazione. La sequenza in cui vengono riportati i parametri corrisponde in linea di massima a quella del file.

23.6.2.2. DocumentRoot

Una delle impostazioni principali è la cosiddetta DocumentRoot, si tratta della directory che contiene le pagine web che Apache fornirà quando riceve una richiesta. E' impostata su /srv/www/htdocs per il host virtuale di default e di solito non è necessario apportare delle modifiche.

23.6.2.3. Timeout

Indica il tempo che il server fa trascorrere prima di comunicare un timeout (tempo massimo) per una richiesta.

23.6.2.4. MaxClients

Il numero massimo di client che Apache gestisce contemporaneamente. Il valore di default è 150, ma per un sito che registra tante richieste potrebbe non essere sufficiente.

23.6.2.5. LoadModule

Le direttive LoadModule indicano i moduli da caricare. Nella versione 2 di Apache la sequenza di caricamento viene stabilita dai moduli. Inoltre, le direttive indicano i file contenuti dal modulo.

23.6.2.6. Port

Indica la porta su cui Apache attende delle richieste. Di solito si tratta della porta 80, la porta standard per HTTP. In linea di massima non è consigliato modificare questa impostazione. Un motivo per farlo potrebbe essere quello di voler sottoporre a test una nuova versione aggiornata del sito web. In questo modo la versione del sito in funzione rimane raggiungibile tramite la porta standard 80.

Un altro motivo potrebbe essere quello di voler rendere disponibili delle pagine solo sull' Intranet, perché contengono delle informazioni riservate. In questo caso si imposta la porta sul valore 8080 e si bloccano tutti gli accessi provenienti dall'esterno diretti a questa porta tramite un firewall, in modo che non sia possibile accedere a questo server dall' esterno.

23.6.2.7. Directory

Tramite questa direttiva vengono impostati i diritti di accesso ed altri diritti concernenti una directory. Anche per la DocumentRoot esiste una tale direttiva, il nome di directory lì indicato deve essere modificato sempre in parallelo con DocumentRoot.

23.6.2.8. DirectoryIndex

Qui potete impostare i file da includere nelle ricerche di Apache per completare una URL senza indicazione del file. Il valore di default è index.html. Se per esempio un client richiede l'URL http://www.esempio.com/foo/bar e sotto la DocumentRoot vi è una directory foo/bar che contiene il file index.html, Apache ritornerà questa pagina al client.

23.6.2.9. AllowOverride

Ogni directory da cui Apache fornisce dei documenti può contenere un file atto a modificare i permessi di accesso impostati globalmente ed altre impostazioni che interessano la directory in questione. Queste impostazioni sono ricorsive, cioé valgono per la directory attuale e le sue sottodirectory, finché non vi sia un altro file del genere in una delle sottodirectory. Questo comporta che se impostazioni del genere risiedono in un file che si trova in DocumentRoot, allora esse avranno validità globale. Questi file di solito hanno il nome .htaccess, che potrete comunque cambiare, si veda a riguardo la sezione Section 23.6.2.11, “AccessFileName”.

Con AllowOverride si stabilisce se le impostazioni indicate nei file locali possano sovrascrivere le impostazioni globali. I valori possibili sono None, All e ogni possibile combinazione tra Options, FileInfo, AuthConfig e Limit. Il significato di questi valori viene descritto in modo dettagliato nella documentazione relativa ad Apache. L'impostazione di default (sicura) è None.

23.6.2.10. Order

Questa opzione determina la sequenza nella quale vengono applicate le impostazioni per i permessi di accesso Allow e Deny, di default si ha:

Order allow,deny

Quindi per prima cosa vengono applicati i permessi di accesso per accessi consentiti ed in seguito quelli per i permessi negati. Gli approcci sono due:

allow all

consentire ogni accesso, definire le eccezioni

deny all

negare ogni accesso, definire le eccezioni.

Un esempio per deny all:

Order deny,allow
Deny from all
Allow from example.com
Allow from 10.1.0.0/255.255.0.0

23.6.2.11. AccessFileName

Qui potete impostare il nome per i file con permesso di sovrascrivere le impostazioni globali riguardanti i permessi di accesso etc., delle directory fornite da Apache (si veda anche la sezione Section 23.6.2.9, “AllowOverride”). Di default si ha .htaccess.

23.6.2.12. ErrorLog

Indica il nome del file con i messaggi di errore di Apache. Di default si tratta del file /var/log/httpd/errorlog. Anche i messaggi di errore per host virtuali (si veda la sezione Section 23.9, “Host virtuali”) si trovano in questo file se nella sezione del VirtualHost del file di configurazione non è stato indicato un altro file di log.

23.6.2.13. LogLevel

I messaggi di errore sono suddivisi - in base all'urgenza - in diversi livelli. Qui potete impostare a partire da quale livello di urgenza emettere il messaggio. Verranno emessi i messaggi del livello impostato e quelli dei livelli superiori in termini di urgenza. Il valore di default è warn.

23.6.2.14. Alias

Tramite un alias potete indicare una abbreviazione per accedere direttamente ad una determinata directory. Per fare un esempio: tramite l'alias /manual/ potrete accedere direttamente alla directory /srv/www/htdocs/manual, anche nel caso in cui la DocumentRoot è impostata su una directory diversa da /srv/www/htdocs. (Finché la DocumentRoot ha questo valore non fa differenza.) Nel caso di questo alias con http://localhost/manual si accede direttamente alla directory relativa. Eventualmente dovrete indicare una direttiva Directory, con i permessi della directory, per la directory meta indicata nella direttiva Alias (vd. a riguardo la sezione Section 23.6.2.7, “Directory”).

23.6.2.15. ScriptAlias

Questa direttiva è simile a quella Alias indicando inoltre che i file nella directory meta debbano essere trattati come script CGI.

23.6.2.16. Server Side Includes (SSI)

I cosiddetti Server Side Include abbreviati con SSI possono essere abilitati ricercandoli negli eseguibili con il comando

<IfModule mod_include.c>
XBitHack on
</IfModule>

Per eseguire una ricerca degli SSI in un file, basta renderlo eseguibile con chmod +xnomefile; oppure si può indicare in modo esplicito il tipo di file in cui ricercare gli SSI, che si realizza con

AddType text/html .shtml 
AddHandler server-parsed .shtml 

Non è consigliabile indicare qui semplicemente .html , dato che Apache effettuerà una ricerca degli SSI in tutte le pagine (anche in quelle che per motivi di sicurezza non contengono degli SSI), cosa che ha dei risvolti negativi dal punto di vista della performance. In queste due istruzioni sono già contenute nel file di configurazione, dunque normalmente non sarà necessario apportare degli adattamenti.

23.6.2.17. UserDir

Con il modulo mod_userdir e la direttiva UserDir si indica una directory nella directory home dell' utente con i file da pubblicare su Internet tramite Apache. Ciò viene impostato in tramite la variabile HTTPD_SEC_PUBLIC_HTML. Per pubblicare dei file, la variabile va impostata sul valore yes. Nel file /etc/httpd/suse_public_html.conf (che viene letto da /etc/apache2/httpd.conf) si avrà una registrazione del tipo:

<IfModule mod_userdir.c>
UserDir public_html
</IfModule>