46.3. Configurazione

In SUSE Linux Apache può essere configurato in due modi differenti: con YaST o manualmente. La configurazione manuale offre un livello elevato di dettaglio ma non presenta le comodità della GUI di YaST.

[Important]Modifiche alla configurazione

Le modifiche ad alcuni valori di configurazione per Apache hanno effetto solo dopo il riavvio di Apache. Questo avviene automaticamente quando si termina la configurazione utilizzando YaST con la casella di controllo Abilitato spuntata per HTTP Service. Il riavvio manuale è descritto nella Sezione 46.3.3, «Attivazione, avvio e arresto di Apache». La maggior parte delle modifiche alla configurazione richiede solo il ricaricamento con rcapache2 reload.

46.3.1. Configurazione di Apache con YaST

YaST consente di configurare un host in rete come server Web. Per configurare un server di questo tipo, avviare YaST e selezionare Servizi di rete+Server HTTP. La prima volta che si apre il modulo, viene avviato l'Assistente di sistema: Server HTTP e viene chiesto di effettuare alcune scelte di base riguardanti l'amministrazione del server.

46.3.1.1. Assistente di sistema: Server HTTP

L'Assistente di sistema: Server HTTP include cinque passaggi o finestre di dialogo. Nell'ultimo passaggio è possibile scegliere di attivare la modalità di configurazione avanzata per configurare impostazioni ancora più specifiche.

Selezione dispositivo di rete

Specificare le interfacce di rete e le porte utilizzate da Apache per l'ascolto delle richieste in entrata. È possibile selezionare una qualsiasi combinazione di interfacce di rete esistenti e i relativi indirizzi IP. È possibile utilizzare le porte di tutti i tre intervalli, ovvero le porte note, le porte registrate e le porte dinamiche o private, non riservate da altri servizi.

Per default, vengono ascoltate le richieste in entrata su tutte le interfacce di rete (indirizzi IP) sulla porta 80. Quando il firewall è abilitato, è possibile scegliere se abilitare le porte Apache sul firewall.

Selezionare Apri firewall sulle porte selezionate per aprire le porte nel firewall su cui il server Web è in ascolto. Questa operazione è necessaria per rendere disponibile il server Web sulla rete, che può essere una rete LAN, WAN oppure Internet pubblica. La chiusura della porta Listen (Ascolto) risulta utile negli scenari di verifica in cui non è necessario un accesso esterno al server Web. Se si è soddisfatti delle impostazioni di default oppure dopo avere apportato le modifiche desiderate, fare clic su Avanti per continuare la configurazione.

Figura 46.1. Assistente di sistema: Server HTTP -- Selezione dispositivo di rete

Assistente di sistema: Server HTTP -- Selezione dispositivo di rete
Moduli

Il pacchetto SUSE Linux Apache include una vasta gamma di moduli Apache. I moduli, disponibili per svariati task, consentono di estendere le funzionalità di Apache. L'opzione di configurazione Moduli permette di caricare e scaricare vari moduli Apache durante la fase di avvio del server. Per ulteriori informazioni sui moduli, fare riferimento alla Sezione 46.5, «Moduli Apache». Fare clic su Avanti per continuare.

Figura 46.2. Assistente di sistema: Server HTTP -- Moduli

Assistente di sistema: Server HTTP -- Moduli
Host predefinito

Questa opzione si riferisce al server Web di default. Come descritto nella Sezione 46.4, «Host virtuali», Apache può gestire più domini da un singolo computer fisico. Il primo dominio dichiarato, o Host virtuali, nel file di configurazione è comunemente noto come host di default. Per modificare le impostazioni dell'host, scegliere la voce appropriata nella tabella e quindi fare clic su Modifica. Per aggiungere un nuovo host, fare clic su Aggiungi. Per cancellare un host, selezionarlo e quindi fare clic su Cancella.

In questo passaggio è possibile decidere di aggiungere un'opzione SSL (Secure Sockets Layer) e il relativo valore alle impostazioni dell'host. Per ulteriori informazioni, vedere la Sezione 46.3.1.3, «Aggiunta del supporto SSL».

Figura 46.3. Assistente di sistema: Server HTTP -- Host predefinito

Assistente di sistema: Server HTTP -- Host predefinito

Di seguito vengono elencate le impostazioni di default del server:

Document Root

Come descritto nella Sezione 46.2.3.4, «Home directory», /srv/www/htdocs è il percorso di default da cui Apache gestisce le pagine Web.

Directory

/srv/www/htdocs è il percorso delle pagine Web.

Alias

Le direttive Alias consentono di mappare gli URL a percorsi di file system fisici. Questo significa che è possibile accedere a un percorso anche se non è incluso nella radice documenti del file system tramite un URL mappato a tale percorso.

Il file di default di SUSE Linux Alias /icons punta a /usr/share/apache2/icons per le icone Apache visualizzate nella vista degli indici delle directory.

Directory

/usr/shareapache2/icons è il percorso della directory Alias.

ScriptAlias

La direttiva ScriptAlias, simile alla direttiva Alias, consente di mappare un URL al percorso di un file system. La differenza è data dal fatto che ScriptAlias imposta la directory di destinazione come percorso CGI, il che significa che gli script CGI devono essere eseguiti in tale percorso.

Directory

/srv/www/cgi-bin è il percorso della directory ScriptAlias.

Include (Includi)

/etc/apache2/conf.d/*.conf è la directory contenente i file di configurazione forniti con alcuni pacchetti. /etc/apache2/conf.d/apache2-manual?conf è la directory contenente tutti i file di configurazione apache2-manual.

Risoluzione server

Questa opzione si riferisce alla Sezione 46.4, «Host virtuali».

Determina server richiedente tramite intestazioni HTTP consente a un Host Virtuale di rispondere a una richiesta inviata al nome del server (vedere la Sezione 46.4.1, «Host virtuali basati sul nome»).

Determina server richiedente tramite indirizzo IP del server consente ad Apache di selezionare l'host richiesto in base alle informazioni dell'intestazione HTTP inviate dal client. Per ulteriori informazioni sugli host virtuali basati su IP, vedere la Sezione 46.4.2, «Host virtuali basati su IP».

Nome del server

Specifica l'URL di default utilizzato dai client per contattare il server Web. Utilizzare un FQDN (vedere Dominio) per contattare il server Web all'indirizzo http://FQDN oppure specificare il relativo indirizzo IP.

E-mail per l'amministratore del server

Specificare l'indirizzo e-mail dell'amministratore del server Web in E-mail per l'amministratore del server.

Dopo avere completato il passaggio Host predefinito, fare clic su Avanti per passare alla finestra di configurazione successiva.

Host virtuali

In questo passaggio viene visualizzato un elenco degli host virtuali già configurati (vedere la Sezione 46.4, «Host virtuali»). Accanto al nome di server di uno di questi host è presente un asterisco per indicare che è l'host di default. Per impostare un host di default, selezionare il server e fare clic su Imposta come default.

Per aggiungere un host, fare clic su Aggiungi. Viene visualizzata una finestra di dialogo nella quale è possibile immettere le informazioni di base dell'host. Identificazione server include il nome del server, la radice del contenuto del server e l'e-mail dell'amministratore. Il testo della Guida nella parte sinistra della finestra contiene una descrizione dettagliata di tutti questi elementi. Risoluzione server consente di impostare la modalità di identificazione di un host. È possibile scegliere se si desidera identificare il server di una richiesta in base alle intestazioni HTTP oppure in base all'indirizzo IP del server selezionando l'apposita opzione. La seconda opzione consente di identificare l'host virtuale in base all'indirizzo IP utilizzato dal client durante la connessione al server. È inoltre possibile scegliere di abilitare il supporto SSL selezionando l'apposita opzione nonché specificare il percorso del certificato. Quando si fa clic su Sfoglia, viene visualizzata la directory di default /etc/apache2/ssl.crt. Dopo avere immesso tutte le informazioni desiderate, fare clic su Avanti per proseguire con il passaggio finale della configurazione.

Figura 46.4. Assistente di sistema: Server HTTP -- Host virtuali

Assistente di sistema: Server HTTP -- Host virtuali
Sommario

Questo è il passaggio finale dell'assistente, nel quale è possibile specificare come e quando il server Apache dovrà essere avviato, ovvero automaticamente durante la procedura di avvio del sistema oppure manualmente. Vengono inoltre visualizzati sia la porta selezionata in precedenza che gli host di default e virtuali. Se si è soddisfatti delle impostazioni, fare clic su Finito per completare la configurazione.

Figura 46.5. Assistente di sistema: Server HTTP -- Sommario

Assistente di sistema: Server HTTP -- Sommario

46.3.1.2. Configurazione per esperti del server HTTP

Il modulo del server HTTP consente di apportare ulteriori modifiche alla configurazione. Fare clic su Configurazione per esperti del server HTTP per visualizzare ulteriori opzioni di configurazione. È quindi possibile apportare le seguenti modifiche:

Ascolta su

Quando si seleziona l'impostazione Ascolta su e si fa clic su Modifica, viene visualizzata una nuova finestra nella quale è possibile aggiungere, cancellare o modificare voci.

Moduli

Quando si seleziona l'impostazione Moduli e si fa clic su Modifica, è possibile modificare lo stato dei moduli Apache2 tramite il controllo Cambia lo stato. Fare clic su Aggiungi modulo per aggiungere un nuovo modulo.

Host predefinito

Quando si seleziona Host predefinito e si fa clic su Modifica, è possibile modificare le impostazioni dell'host. È inoltre possibile aggiungere, modificare o cancellare opzioni.

Hosts

Quando si seleziona Hosts e si fa clic su Modifica, è possibile aggiungere, cancellare, modificare o impostare come default un host.

In tutte le finestre di dialogo precedenti è possibile fare clic su File di log per visualizzare il log degli errori e il log degli accessi. Fare clic su OK per completare la configurazione e tornare al centro controllo YaST.

46.3.1.3. Aggiunta del supporto SSL

Per aggiungere un'opzione SSL all'host, fare clic su Aggiungi nel terzo passaggio dell'Assistente di sistema: Server Wizard in cui viene configurato l'host di default. Se il server è già stato configurato e non è più possibile accedere all'assistente, è possibile configurare un'opzione SSL selezionando Host di default nella finestra di dialogo Configurazione del server HTTP oppure facendo clic su Modifica e quindi su Aggiungi. In entrambi i casi, viene visualizzata una finestra popup nella quale è possibile selezionare un'opzione SSL e fare clic su OK per confermare la scelta effettuata. Viene quindi chiesto di immettere un valore per l'opzione selezionata. In alcuni casi potrebbe essere sufficiente impostare il valore su on o off, mentre in altri potrebbe essere necessario immettere un valore appropriato. In caso di dubbio sui parametri da utilizzare durante la configurazione di SSL, fare riferimento alla documentazione. Quando si fa clic su OK, l'opzione e il relativo valore vengono visualizzati nell'elenco delle configurazioni dell'host. Quando si fa clic su Avanti, viene visualizzato il passaggio successivo della configurazione.

Se nell'elenco delle configurazioni dell'host è indicata la voce SSL, fare clic su Modifica per visualizzare la finestra di dialogo per la configurazione di SSL. Se questa voce non è indicata, fare clic su Aggiungi, selezionare SSL e fare clic su OK per visualizzare automaticamente la finestra di dialogo nella quale è possibile aggiungere, cancellare o modificare le opzioni SSL. Fare clic su OK per tornare all'Assistente di sistema: Server HTTP.

46.3.2. Configurazione manuale di Apache

Per configurare Apache manualmente, è necessario modificare i file di configurazione nel formato testo semplice come utente root.

[Important]Modulo SuSEconfig per Apache2 rimosso

Il modulo SuSEconfig per Apache2 è stato rimosso da SUSE Linux. Quindi, non è più necessario eseguire SuSEconfig dopo aver modificato /etc/sysconfig/apache2.

46.3.2.1. /etc/sysconfig/apache2

/etc/sysconfig/apache2 controlla alcune impostazioni globali di Apache, ad esempio i moduli da caricare, gli ulteriori file di configurazione da includere, i flag per l'avvio del server e quelli da aggiungere alla riga di comando. Per ciascuna opzione di configurazione inclusa in questo file è una disponibile una dettagliata descrizione, per questo motivo tali opzioni non vengono ulteriormente illustrate in questa sezione. /etc/sysconfig/apache2 è generalmente sufficiente per qualsiasi tipo di configurazione su un server Web generico. Per specificare un particolare tipo di configurazione, vedere la Sezione 46.3.2.2, «Direttive di apache in /etc/apache2/httpd.conf: Ambiente globale ».

[Important]File creati automaticamente all'avvio del server

/etc/sysconfig/apache2 crea o modifica automaticamente i seguenti file all'avvio o al riavvio del server Web.

  • /etc/apache2/sysconfig.d/loadmodule.conf: include i moduli che vengono caricati in fase di esecuzione

  • /etc/apache2/sysconfig.d/global.conf: include le impostazioni generali del server

  • /etc/apache2/sysconfig.d/include.conf: include l'elenco dei file di configurazione disponibili

Non modificare questi file manualmente, ma solo le impostazioni corrispondenti in /etc/sysconfig/apache2.

Per modifiche di vario tipo a livello di configurazione, vedere i file nella directory /etc/apache2/*, in particolare per le modifiche alla configurazione manuale di host virtuali, dell'ambiente globale o del server principale.

46.3.2.2. Direttive di apache in /etc/apache2/httpd.conf: Ambiente globale

SUSE Linux utilizza /etc/apache2/httpd.conf come punto di riferimento per gli altri file di configurazione. Modificare questo file solo per abilitare le funzioni non disponibili in /etc/sysconfig/apache2. Le direttive incluse nella sezione Ambiente globale di httpd.conf influiscono sul funzionamento complessivo di Apache.

Nelle sezioni seguenti verranno illustrate alcune direttive non disponibili in YaST. Direttive di base quali l'home directory (Document Root) sono fondamentali e obbligatorie sia nell'Ambiente globale che per l'host virtuale.

I parametri e le direttive seguenti, ordinati in base alla connessione logica e all'ambito di configurazione, devono essere impostati in /etc/apache2/httpd.conf.

46.3.2.2.1. LoadModule module_identifier /path/to/module

La direttiva LoadModule specifica il modulo Apache da caricare in fase di esecuzione. module_identifier rappresenta il nome del modulo in base alla relativa documentazione. /path/to/module può essere un percorso relativo o assoluto cha fa riferimento al file.

Esempio 46.1. Direttiva LoadModule

LoadModule rewrite_module /usr/lib/apache2-prefork/mod_rewrite.so

In SUSE Linux non è necessario utilizzare direttamente le istruzioni LoadModule poichè in /etc/sysconfig/apache2 viene utilizzato APACHE_MODULE.

46.3.2.2.2. MaxClients numero

Il numero massimo di client che Apache può gestire contemporaneamente. Il valore di MaxClients deve essere sufficientemente grande da consentire la gestione delle richieste simultanee che il sito Web prevede di ricevere, ma sufficientemente piccolo da garantire l'elaborazione di tutti questi processi nella memoria RAM fisica.

46.3.2.2.3. Timeout secondi

Specifica il periodo di attesa prima che in Apache venga indicato un tempo massimo per una richiesta.

46.3.2.3. Direttive di Apache in /etc/apache2/httpd.conf: Server principale

Le direttive nella sezione Server principale si applicano quando le richieste di un client non possono essere gestite da alcun Host virtuale e devono quindi essere elaborate da un server predefinito o principale. Inoltre, i parametri specificati in questo contesto sono predefiniti per tutti gli host virtuali configurati. Di conseguenza, tutte le direttive incluse nella sezione Server principale possono essere specificate anche nel contesto Host Virtuale sovrascivendo i valori predefiniti.

46.3.2.3.1. DirectoryIndex nomi file

Consente di specificare i file che è necessario cercare in Apache per completare un URL che non include le informazioni sui file. L'impostazione predefinita è index.html. Se ad esempio il client richiede l'URL http://www.example.com/foo/ e la directory foo contiene un file di nome index.html, al client verrà inviata questa pagina. Per dichiarare più file, separarli mediante spazi.

Esempio 46.2. Direttiva DirectoryIndex

DirectoryIndex index.html index.shtml start.php begin.pl
46.3.2.3.2. AllowOverride All | None | opzione

Questa direttiva può essere utilizzata solo in una dichiarazione <Directory></Directory>. Vedere Directory.

AllowOverride specifica le opzioni di accesso e visualizzazione che possono essere ignorate da un file .htaccess, oppure dai file specificati in AccessFileName come descritto nella Sezione 46.3.2.3.3, «AccessFileName nomi file ».

I valori possibili sono:

All

Il file .htaccess può ignorare tutte le opzioni.

None

Il file .htaccess non può ignorare alcuna opzione.

AuthConfig

Le directory possono essere protette da password mediante un file .htaccess.

FileInfo

Consente di utilizzare le direttive che controllano i tipi di documenti inclusi in un file .htaccess. Un esempio tipico è la configurazione di pagine di errore personalizzate con ErrorDocument (vedere http://httpd.apache.org/docs-2.0/mod/core.html#errordocument).

Indexes

Se non è disponibile alcun documento DirectoryIndex, è possibile utilizzare questo parametro che consente di controllare la visualizzazione del contenuto di una directory in Apache.

Limit

Controlla l'accesso a una directory o ad alcuni file relativi a un client. A questo scopo, vengono utilizzate le direttive Allow, Deny e Order in un file .htaccess. Per informazioni sull'utilizzo di queste direttive, vedere la documentazione sui modulo di accesso (http://httpd.apache.org/docs-2.0/mod/mod_access.html).

Options

Consente di utilizzare le direttive Options e XBitHack in un file .htaccess. La direttiva Options (http://httpd.apache.org/docs-2.0/mod/core.html#options) controlla quali funzioni di server sono disponibili in una determinata directory. La direttiva XBitHack (http://httpd.apache.org/docs-2.0/mod/mod_include.html#xbithack) consente ai file con bit di esecuzione di essere analizzati come SSI (vedere la Sezione 46.5.1.1, «Server-Side Includes con mod_include »).

[Important]Importante

Queste impostazioni vengono applicate in maniera ricorrente alla directory e alle relative sottodirectory. È possibile combinare queste opzioni, eccetto All e None separandole con degli spazi.

Esempio 46.3. Direttiva AllowOverride

<Directory /srv/www/htdocs>
    AllowOverride None
</Directory>
<Directory /srv/www/htdocs/project>
    AllowOverride All
</Directory>
<Directory /srv/www/htdocs/project/webapp>
    AllowOverride Indexes Limit AuthConfig
</Directory>
46.3.2.3.3. AccessFileName nomi file

AccessFileName consente di impostare i file che possono ignorare le autorizzazioni di accesso globale e le altre impostazioni per le directory (vedere Directory).

L'impostazione predefinita è .htaccess. Per dichiarare più file, separarli con degli spazi.

Esempio 46.4. Direttiva AccessFileName

AccessFileName .htaccess .acl permission.txt
46.3.2.3.4. ErrorLog file | "|command"

Specifica il nome del file in cui vengono protocollati i messaggi di errore in Apache. In alternativa, questi messaggi possono essere salvati in un comando o uno script. L'impostazione predefinita è /var/log/apache2/error_log.

Esempio 46.5. Direttiva ErrorLog

ErrorLog /var/log/apache2/error_log
ErrorLog "|/path/to/script"
46.3.2.3.5. LogLevel livello

Imposta il livello di dettagli da specificare nei messaggi di log. In un livello di dettagli in ordine crescente (e gravità decrescente dei messaggi), il livello può essere

  • emerg

  • alert

  • crit

  • error

  • warn

  • notice

  • info

  • debug

L'impostazione predefinita è warn, consigliata per le attività quotidiane. Per le operazioni di debug si consiglia di utilizzare info e debug perchè forniscono maggiori dettagli.

Esempio 46.6. Direttiva LogLevel

LogLevel debug
        

46.3.2.4. Direttive di apache in /etc/apache2/httpd.conf: Sezione Host virtuali

Per gestire più domini o nomi host su un computer fisico, è necessario utilizzare i container VirtualHost dichiarati nelle sezioni Host virtuali della configurazione. Per ulteriori dettagli sulla sintassi e le funzionalità degli host virtuali, vedere la Sezione 46.4, «Host virtuali».

46.3.3. Attivazione, avvio e arresto di Apache

Per attivare il server Web Apache all'avvio, utilizzare il runlevel editor di YaST. Per avviarlo, selezionare Sistema+Servizi sistema (Runlevel) in YaST. Andare alla voceapache2. Selezionare Abilita per avviare automaticamente Apache all'avvio della macchina. Gli utenti esperti possono utilizzare lo strumento chkconfig per avviare Apache all'avvio della macchina sulla riga di comando: /sbin/chkconfig -a apache2.

Per avviare o fermare Apache, utilizzare lo script /usr/sbin/rcapache2 come utente root. /usr/sbin/rcapache2 prende i seguenti parametri per avviare e fermare il server Web Apache:

avvia

Avvia il server Web Apache

startssl

Avvia il server Web Apache con il supporto SSL. Per informazioni relative alla configurazione di Apache con SSL, consultare Sezione 46.3.1.3, «Aggiunta del supporto SSL» e Sezione 46.5.2.2, «Secure Sockets Layer e Apache: mod_ssl».

ferma

Ferma il server Web Apache

configtest

Prova la configurazione di Apache senza fermare, avviare o riavviare il server Web. Poichè questa prova viene forzata ogni volta che viene avviato, ricaricato o riavviato il server, generalmente non è necessario eseguirla esplicitamente.

riavvia

Prima ferma e poi avvia di nuovo il server Web.

try-restart

Riavvia il servere Web se è in esecuzione.

restart-hup

Riavvia il server Web Apache inviandogli un segnale SIGHUP. Questa funzione non viene normalmente utilizzata.

graceful e ricarica

Ferma il server Web avvertendo tutti i processi Apache forked di terminare la loro richiesta prima di chiudere. Poichè ogni processo si blocca, viene sostituito da uno appena avviato, che risulta dal completo "riavvio" di Apache.

[Tip]Suggerimento

rcapache2 reload è il metodo preferito per riavviare Apache in ambienti di produzione poichè consente a tutti i client di essere serviti senza provocare interruzioni alla connessione.

stato

Controlla lo stato di runtime del server Web Apache.

Esempio 46.7. Output di esempio all'avvio e all'arresto di Apache

tux@sun # rcapache2 status
Checking for httpd2:                                  non utilizzato

tux@sun # rcapache2 configtest
Syntax OK

tux@sun # rcapache2 start
Starting httpd2 (prefork)                             fatto

tux@sun # rcapache2 status
Checking for httpd2:                                  in esecuzione

tux@sun # rcapache2 start 
Starting httpd2(graceful restart)                             fatto

tux@sun # rcapache2 status 
Checking for httpd2:                                  in esecuzione
            

Un avvio non corretto o un mancato avvio in Apache potrebbero dare come risultato un file di configurazione malformato. Per il mancato avvio, potrebbero anche non essere visualizzati messaggi. Controllare sempre il log degli errori principale a ogni avvio e riavvio.