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.
![]() | Modifiche alla configurazione |
|---|---|
Le modifiche alla maggior parte dei valori di configurazione per Apache hanno effetto solo dopo aver riavviato o ricaricato Apache. Questo avviene automaticamente quando si utilizza YaST e si termina la configurazione con la casella di controllo selezionata per . Il riavvio manuale è descritto riportato nella Sezione 26.3, "Avvio e arresto di Apache". La maggior parte delle modifiche alla configurazione richiede solo il ricaricamento con rcapache2 | |
Per configurare Apache manualmente, è necessario modificare i file di configurazione nel formato testo semplice come utente root.
I file di configurazione di Apache si possono trovare in due posizioni differenti:
/etc/sysconfig/apache2
/etc/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. Le impostazioni in /etc/sysconfig/apache2 sono generalmente sufficienti per qualsiasi tipo di configurazione su un server Web generico.
![]() | Modulo SuSEconfig per Apache rimosso |
|---|---|
Il modulo SuSEconfig per Apache è stato rimosso da SUSE Linux. Quindi, non è più necessario eseguire | |
/etc/apache2/ contiene tutti i file di configurazione per Apache. Di seguito viene spiegata la funzione di ciascun file. Ciascun file include varie opzioni di configurazione (indicate anche come direttive). Per ciascuna opzione di configurazione inclusa in questi file è disponibile una dettagliata descrizione, per questo motivo tali opzioni non vengono ulteriormente illustrate in questa sezione.
I file di configurazione di Apache sono organizzati come segue:
/etc/apache2/
|
|- charset.conv
|- conf.d/
| |
| |- *.conf
|
|- default-server.conf
|- errors.conf
|- httpd.conf
|- listen.conf
|- magic
|- mime.types
|- mod_*.conf
|- server-tuning.conf
|- ssl-global.conf
|- ssl.*
|- sysconfig.d
| |
| |- global.conf
| |- include.conf
| |- loadmodule.conf . .
|
|- uid.conf
|- vhosts.d
| |- *.conf
File di configurazione di Apache in /etc/apache2/
charset.convSpecifica quali set di caratteri utilizzare per le varie lingue. Non modificare.
conf.d/*.conf
File di configurazione aggiunti da altri moduli. Questi file di configurazione possono essere inclusi nella configurazione dell'host virtuale, quando necessario. Per esempi, vedere vhosts.d/vhost.template. In questo modo è possibile fornire differenti set di moduli per host virtuali differenti.
default-server.confConfigurazione globale con valori predefiniti accettabili per tutti gli host virtuali. Anziché modificare questi valori, sovrascriverli con la configurazione di un host virtuale.
errors.confDefinisce il modo in cui Apache risponde agli errori. Per personalizzare questi messaggi per tutti gli host virtuali, modificare questo file. In caso contrario sovrascrivere queste direttive nelle configurazioni degli host virtuali.
httpd.confIl file principale di configurazione del server Apache. Evitare la modifica di questo file. Contiene principalmente dichiarazioni e impostazioni globali. Sovrascrivere le impostazioni globali nei rispettivi file di configurazione elencati qui. Modificare le impostazioni specifiche dell'host (ad esempio, la root dei documenti) nella configurazione dell'host virtuale.
listen.confAssocia Apache a indirizzi IP e porte specifici. Qui vengono anche configurati gli host virtuali basati sui nomi (vedere la Sezione 26.2.1.2.1, "Host virtuali basati sul nome").
magicDati per il modulo mime_magic che consente ad Apache di determinare automaticamente il tipo MIME di un file sconosciuto. Non modificare.
mime.types
Tipi MIME conosciuti dal sistema. In effetti si tratta di un collegamento a /etc/mime.types. Non modificare. Se è necessario aggiungere tipi MIME non elencati qui, aggiungerli a mod_mime-defaults.conf.
mod_*.conf
File di configurazione per i moduli installati per impostazione predefinita. Per ulteriori dettagli, vedere la Sezione 26.4, "Installazione, attivazione e configurazione dei moduli". Notare che i file di configurazione per i moduli opzionali si trovano nella directory conf.d.
server-tuning.confContiene le direttive di configurazione per i differenti MPM (vedere la Sezione 26.4.4, "Moduli per il multiprocessing") e le opzioni di configurazione generali che controllano le prestazioni di Apache. Verificare attentamente il server Web quando si eseguono modifiche in questo file.
ssl-global.conf e ssl.*Configurazione SSL globale e dati certificati SSL. Per ulteriori dettagli, consultare la Sezione 26.6, "Impostazione di un server Web sicuro con SSL".
sysconfig.d/*.conf
File di configurazione generati automaticamente da /etc/sysconfig/apache2. Non modificare questi file; modificare /etc/sysconfig/apache2. Non inserire altri file di configurazione in questa directory.
uid.confSpecifica ID utente e gruppo nel quale viene eseguito Apache. Non modificare.
vhosts.d/*.conf
Inserire qui la configurazione del proprio host virtuale. La directory contiene file di modello per host virtuali con e senza SSL. Ciascun file con estensione .conf in questa directory viene automaticamente incluso nella configurazione Apache. Per ulteriori dettagli, consultare la Sezione 26.2.1.2, "Configurazione dell'host virtuale".
Il termine host virtuale si riferisce alla capacità di Apache di servire diversi URI (universal resource identifiers) dalla stessa macchina fisica. Questo significa che, diversi domini, come www.example.com e www.example.net, vengono eseguiti da un solo server Web su una macchina fisica.
Generalmente si utilizzano host virtuali per risparmiare sui costi amministrativi (la manutenzione è limitata a un solo server Web) e di hardware (ogni dominio non richiede un server dedicato). Gli host virtuali possono essere basati sul nome, sull'IP o sulla porta.
Gli host virtuali possono essere configurati con YaST (vedere la Sezione 26.2.2.1.4, "Host virtuali") o modificando manualmente un file di configurazione. Per impostazione predefinita, Apache in SUSE Linux viene preparato per un file di configurazione per host virtuale in /etc/apache2/vhosts.d/. Tutti i file con estensione .conf in questa directory vengono automaticamente inclusi alla configurazione. Un modello di base per un host virtuale è fornito in questa directory (vhost.template o vhost-ssl.template nel caso di un host con supporto SSL).
![]() | Creare sempre una configurazione dell'host virtuale |
|---|---|
Si consiglia di creare sempre un file di configurazione per l'host virtuale, anche nel caso in cui il server Web sia l'host per un solo dominio. In questo modo, non solo si avrà la configurazione specifica del dominio in un file, ma sarà inoltre sempre possibile tornare a una configurazione di base funzionante semplicemente spostando, eliminando o rinominando il file di configurazione per l'host virtuale. Per lo stesso motivo, è anche consigliabile creare file di configurazione separati per ciascun host virtuale. | |
Il blocco <VirtualHost></VirtualHost> contiene le informazioni da applicare a un particolare dominio. Quando Apache riceve una richiesta da un client per un host virtuale definito, utilizza le direttive allegate a questa sezione. Quasi tutte le direttive possono essere utilizzate in un contesto di host virtuale. Per ulteriori informazioni sulle direttive di configurazione di Apache, consultare http://httpd.apache.org/docs/2.0/mod/quickreference.html.
Con gli host virtuali basati sul nome, viene servito più di un sito Web per indirizzo IP. Apache utilizza il campo host nell'intestazione HTTP inviato dal client per connettere la richiesta a una voce ServerName corrispondente di una delle dichiarazioni dell'host virtuale. Se non si trova nessun ServerName corrispondente, il primo host virtuale specificato viene utilizzato come predefinito.
La direttiva NameVirtualHost comunica ad Apache su quale indirizzo IP e, a scelta, quale porta ascoltare le richieste da parte di client contenenti il nome di dominio nell'intestazione HTTP. Questa opzione è configurata nel file di configurazione /etc/apache2/listen.conf.
Il primo argomento può essere un nome di dominio completo, ma si consiglia di utilizzare l'indirizzo IP. Il secondo argomento è la porta ed è facoltativo. Come impostazione predefinita, viene utilizzata la porta 80 che è configurata tramite la direttiva Listen.
Il carattere jolly * può essere utilizzato sia per l'indirizzo IP, sia per il numero della porta per ricevere le richieste su tutte le interfacce. Gli indirizzi IPv6 devono essere racchiusi tra parentesi quadre.
Esempio 26.1. Variazioni delle voci VirtualHost basate sul nome
# NameVirtualHostIP-address[:Port]NameVirtualHost 192.168.1.100:80 NameVirtualHost 192.168.1.100 NameVirtualHost *:80 NameVirtualHost * NameVirtualHost [2002:c0a8:164::]:80
Il tag di apertura VirtualHost assume l'indirizzo IP (o un nome di dominio completo) precedentemente dichiarato con NameVirtualHost come argomento in una configurazione host basata sul nome. Un numero di porta precedentemente dichiarato con la direttiva NameVirtualHost è facoltativo.
Il carattere jolly * è ammesso anche come sostituto dell'indirizzo IP. Questa sintassi è valida solo in combinazione con l'utilizzo del carattere jolly in NameVirtualHost *. Quando si utilizzano gli indirizzi IPv6, l'indirizzo deve essere racchiuso tra parentesi quadre.
Questa configurazione alternativa di host virtuali richiede la configurazione di più IP su una macchina. Un'istanza di Apache supporta l'hosting di diversi domini, a ognuno dei quali viene assegnato un IP diverso.
Il server fisico deve avere un unico indirizzo IP per ciascuno degli host virtuali basati su IP. Se la macchina non dispone di più schede di rete, possono essere utilizzate interfacce di rete virtuali (IP aliasing).
L'esempio seguente mostra Apache in esecuzione su una macchina con l'IP 192.168.0.10, che ospita due domini sugli IP aggiuntivi 192.168.0.20 e 192.168.0.30. Per ogni server virtuale è necessario un blocco VirtualHost separato.
Esempio 26.3. Direttive VirtualHost basate su IP
<VirtualHost 192.168.0.20>
...
</VirtualHost>
<VirtualHost 192.168.0.30>
...
</VirtualHost>
In questo esempio, le direttive VirtualHost sono specificate solo per interfacce differenti da 192.168.0.10. Quando una direttiva Listen viene configurata anche per l'indirizzo 192.168.0.10, deve essere creato un host virtuale basato su IP per rispondere alle richieste HTTP effettuate a quella interfaccia; in caso contrario vengono applicate le direttive trovate nella configurazione predefinita del server (/etc/apache2/default-server.conf).
Per impostare un host virtuale, nella configurazione di ciascuno di essi devono essere presenti almeno le direttive seguenti. Per ulteriori opzioni, vedere /etc/apache2/vhosts.d/vhost.template.
ServerNameIl nome di dominio completo deve terminare sotto il quale deve essere indirizzato l'host.
DocumentRoot
Percorso della directory dalla quale Apache fornisce i file per questo host. Per ragioni di sicurezza, per impostazione predefinita è vietato l'accesso all'intero file system; sarà quindi necessario sbloccare esplicitamente questa directory all'interno di un container Directory.
ServerAdminIndirizzo e-mail dell'amministratore del server. Questo indirizzo è, ad esempio, mostrato sulla pagina di errore creata da Apache.
ErrorLog
Il log degli errori per questo host virtuale. Sebbene non sia necessario creare log degli errori separati per ciascun host virtuale, in genere lo si fa, in quanto ciò rende molto più semplice il debug degli errori. /var/log/apache2/ è la directory predefinita dove vengono conservati i file di log di Apache.
CustomLog
Il file del log degli accessi per questo host virtuale. Sebbene non sia necessario creare log degli accessi separati per ciascun host virtuale, in genere lo si fa, in quanto ciò consente un'analisi separata delle statistiche di accesso per ciascun host. /var/log/apache2/ è la directory predefinita dove vengono conservati i file di log di Apache.
Come indicato in precedenza, l'accesso all'intero file system è vietato per impostazione predefinita per ragioni di sicurezza. Pertanto, sbloccare esplicitamente la directory DocumentRoot nella quale sono stati inseriti i file che devono essere gestiti da Apache:
<Directory "/srv/www/example.com_htdocs">
Order allow,deny
Allow from all
</Directory>
Il file di configurazione completo ha il seguente aspetto:
Esempio 26.4. Basic VirtualHost Configuration
<VirtualHost 192.168.0.10>
ServerName www.example.com
DocumentRoot /srv/www/example.com_htdocs
ServerAdmin webmaster@example.com
ErrorLog /var/log/apache2/www.example.com_log
CustomLog /var/log/apache2/www.example.com-access_log common
<Directory "/srv/www/example.com">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Per configurare un server Web con YaST, avviare YaST e selezionare +. 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. Al termine dell'installazione, la finestra di dialogo nella Sezione 26.2.2.2, "Configurazione server HTTP" si apre ogni volta che si avvia il modulo .
L'Assistente di sistema: Server HTTP include cinque passaggi. Nell'ultimo passaggio è possibile scegliere di attivare la modalità di configurazione avanzata per configurare impostazioni ancora più specifiche.
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 impostazione predefinita ascolta tutte le interfacce di rete (indirizzi IP) sulla porta 80.
Selezionare 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 risulta utile solo negli scenari di verifica in cui non è necessario un accesso esterno al server Web.
Fare clic su per continuare la configurazione.
L'opzione di configurazione permette di attivare o disattivare i linguaggi di script supportati dal server Web. Per informazioni sull'attivazione o disattivazione di altri moduli, fare riferimento alla Sezione 26.2.2.2.2, "Moduli del server". Premere per passare alla finestra di dialogo successiva.
Questa opzione si riferisce al server Web di default. Come descritto nella Sezione 26.2.1.2, "Configurazione dell'host virtuale", Apache può gestire più host virtuali da un singolo computer fisico. Il primo host virtuale dichiarato nel file di configurazione è comunemente noto come host di default . Ciascun host virtuale eredita la configurazione dell'host predefinito.
Per modificare le impostazioni dell'host (chiamate anche direttive), scegliere la voce appropriata nella tabella e quindi fare clic su . Per aggiungere nuove direttive, fare clic su . Per eliminare una direttiva, selezionarla e quindi fare clic su .
Di seguito vengono elencate le impostazioni di default del server:
Document Root
Percorso della directory dalla quale Apache fornisce i file per questo host. /srv/www/htdocs è la posizione predefinita.
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.
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
Con l'impostazione Directory, è possibile includere un gruppo di opzioni di configurazione applicabile solo alla directory specificata.
Le opzioni di accesso e visualizzazione per le directory /usr/share/apache2/icons e /srv/www/cgi-bin vengono configurate qui. Non dovrebbe essere necessario modificare i valori predefiniti.
Includi
Grazie all'inclusione è possibile specificare ulteriori file di configurazione. /etc/apache2/conf.d/ è la directory contenente i file di configurazione forniti con i moduli esterni. Per impostazione predefinita, sono inclusi tutti i file della directory (*.conf). /etc/apache2/conf.d/apache2-manual?conf è la directory contenente tutti i file di configurazione apache2-manual.
Nome del server
Specifica l'URL di default utilizzato dai client per contattare il server Web. Utilizzare un nome di dominio completo (FQDN) per contattare il server Web all'indirizzo http:// oppure specificare il relativo indirizzo IP. Qui non è possibile scegliere un nome arbitrario: il server deve essere "noto" con questo nome.
FQDN/
E-mail per l'amministratore del serverIndirizzo e-mail dell'amministratore del server. Questo indirizzo è, ad esempio, mostrato sulla pagina di errore creata da Apache.
Risoluzione server
Questa opzione si riferisce alla Sezione 26.2.1.2, "Configurazione dell'host virtuale". consente a un Host Virtuale di rispondere a una richiesta inviata al nome del server (vedere la Sezione 26.2.1.2.1, "Host virtuali basati sul nome"). 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 26.2.1.2.2, "Host virtuali basati su IP".
Dopo avere completato il passaggio , fare clic su per continuare la configurazione.
In questo passaggio viene visualizzato un elenco degli host virtuali già configurati (vedere la Sezione 26.2.1.2, "Configurazione dell'host virtuale"). Se non si sono effettuate modifiche manuali prima dell'avvio della procedura guidata YaST HTTP, sarà presente un solo host virtuale, identico all'host predefinito configurato al passo precedente. Accanto al nome di server dell'host è presente un asterisco per indicare che è l'host di default.
Per aggiungere un host, fare clic su per aprire una finestra di dialogo nella quale è possibile immettere le informazioni di base dell'host. include il nome del server, la radice del contenuto del server (DocumentRoot) e l'e-mail dell'amministratore. consente di impostare la modalità di identificazione di un host (basata sul nome o basata sull'IP). Per informazioni su queste opzioni, vedere la Sezione 26.2.2.1.3, "Host predefinito".
Facendo clic su , si passa alla seconda parte della finestra di dialogo per la configurazione dell'host virtuale.
Nella seconda parte della configurazione dell'host virtuale è possibile specificare se abilitare gli script CGI e quale directory utilizzare per tali script. È anche possibile abilitare SSL. In questo caso, sarà necessario specificare anche il percorso del certificato. Per ulteriori informazioni su SSL e certificati, consultare la Sezione 26.6.2, "Configurazione di Apache con SSL". Utilizzando l'opzione , è possibile specificare quale file visualizzare quando il client richiede una directory (per impostazione predefinita, index.html). Per cambiare questa impostazione, aggiungere uno o più nomi di file (separati da spazi). Con , il contenuto delle directory pubbliche degli utenti (~user/public_html/) viene reso disponibile sul server all'indirizzo http://www.example.com/~user.
![]() | Creazione di host virtuali |
|---|---|
Non è possibile aggiungere host virtuali a piacere. Se si utilizzano host virtuali basati sul nome, ciascun nome host deve essere risolto sulla rete. Se si utilizzano host virtuali basati sull'IP, sarà possibile assegnare un solo host a ciascun IP disponibile. | |
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. È inoltre possibile visualizzare un breve riassunto della configurazione effettuata fino a questo punto. Se si è soddisfatti delle impostazioni, fare clic su per completare la configurazione. Per aggiungere o modificare alcuni elementi, fare clic su fino a visualizzare la finestra di dialogo desiderata. Facendo clic su si apre la finestra di dialogo descritta nella Sezione 26.2.2.2, "Configurazione server HTTP".
La finestra di dialogo consente di effettuare un numero ancora maggiore di modifiche alla configurazione rispetto all'assistente, il quale viene eseguito solo quando si configura il serve Web per la prima volta. Consiste di quattro schede descritte di seguito. Nessuna opzione di configurazione modificata sarà attiva immediatamente; sarà sempre necessario confermare le modifiche con per attivarle. Facendo clic su si abbandona il modulo di configurazione e si eliminano le modifiche.
In , selezionare se Apache deve essere in esecuzione () o interrotto (). In , selezionare , o per indirizzi e porte sulle quali il server deve essere disponibile. Per impostazione predefinita, vengono ascoltate tutte le interfacce sulla porta 80. È consigliabile selezionare sempre in quanto, in caso contrario, il server Web non sarà accessibile dall'esterno. La chiusura della porta risulta utile solo negli scenari di verifica in cui non è necessario un accesso esterno al server Web.
Con è possibile controllare sia il log di accesso, sia quello di errore. Questa funzione è utile se si desidera verificare la propria configurazione. Il file di log si apre in una finestra separata dalla quale è anche possibile riavviare o ricaricare il server Web (per dettagli, consultare la Sezione 26.3, "Avvio e arresto di Apache"). Questi comandi sono immediatamente attivi.
È possibile modificare lo stato (abilitato o disabilitato) dei moduli Apache2 facendo clic su . Fare clic su per aggiungere un nuovo modulo già installato ma non ancora elencato. Per ulteriori informazioni sui moduli, consultare la Sezione 26.4, "Installazione, attivazione e configurazione dei moduli".
Queste finestre di dialogo sono identiche a quelle già descritte. Consultare la Sezione 26.2.2.1.3, "Host predefinito" e Sezione 26.2.2.1.4, "Host virtuali".