mercoledì, aprile 02, 2008

Default Apache ServerName *

- post<li> - Permalink

Problema semplice semplice o meglio sarà semplice per tutti ma non per me che me dimentico ogni volta e quindi me lo appunto qui per futura memoria.

Problema
Quando si imposta un server web ex-novo con Apache una buona configurazione è quello di impostarlo in modo Name-Based (per capire la differenza da IP-Based si può consultare Virtual Hosts) facendo si che risponda a qualsiasi (o semplicemente NON ancora configurato) NomeDominio che gli venga richiesto con una pagina furba di UnderConstruction e risponda pubblicando i contenuti corretti quando invece gli viene richiesto un ServerName già configurato ... peccato che nonostante quello che dica la documentazione spesso non accade così ma risponda sempre e comunque per gli host non ancora configurati un host diverso da UnderConstruction.

In altre parole dovrebbe essere:
ServerName * -> UnderConstruction
ServerName www.aaa.it -> /var/www/sites/aaa.it
ServerName www.bbb.com -> /var/www/sites/bbb.com
.......

peccato non sia - vediamo perchè

Soluzione:
Contestualizziamo un attimo ora mi riferirò alla configurazione di Apache in Reh Hat Enterprise Edition e derivate quindi anche CentOS, fedora e così via...

Il file di configurazione principale di httpd si trova nella directory

/etc/httpd/conf/httpd.conf

e io in linea di principio cerco di toccarlo il meno possibile in modo da non avere problemi in caso di upgrade o spostamento dei domini tra un server e l'altro. Per poter fare tutte le configurazioni del caso approfitto della direttiva di Default relativa a

#
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf


Scommento la riga

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80


in modo da concentrare le mie configurazioni nella directory /etc/httpd/conf.d

[user@serverweb conf.d]# ll
totale 112
-rw-r--r-- 1 root root 320 2 apr 14:35 aaa.it.conf
-rw-r--r-- 1 root root 320 2 apr 14:35 bbb.com.conf

-rw-r--r-- 1 root root 295 16 gen 02:36 manual.conf
-rw-r--r-- 1 root root 1796 22 apr 2005 perl.conf
-rw-r--r-- 1 root root 560 20 set 2007 php.conf
-rw-r--r-- 1 root root 566 16 gen 02:36 proxy_ajp.conf
-rw-r--r-- 1 root root 1671 6 gen 2007 python.conf
-rw-r--r-- 1 root root 392 16 gen 02:36 README
-rw-r--r-- 1 root root 332 19 dic 01:44 squid.conf
-rw-r--r-- 1 root root 9677 16 gen 02:36 ssl.conf
-rw-r--r-- 1 root root 187 1 apr 18:28 underconstruction.conf
-rw-r--r-- 1 root root 352 9 gen 2007 webalizer.conf


All'interno di aaa.it.conf troveremo

<VirtualHost *:80>
ServerAdmin webmaster@aaa.it
DocumentRoot /var/www/sites/aaa.it
ServerName www.aaa.it
ErrorLog logs/aaa.it-error_log
CustomLog logs/aaa.it-access_log combined
</VirtualHost>


mentre all'interno di underconstruction.conf avremo invece

<VirtualHost *:80>
DocumentRoot /var/www/sites/underconstruction
ServerName *
ErrorLog logs/underconstruction-error_log
CustomLog logs/underconstruction-access_log combined
</VirtualHost>


con queste direttive dovrebbe rispondere per ogni dominio non configurato (*) con /var/www/sites/underconstruction mentre quando il browser richiede http://www.aaa.it pubblicare /var/www/sites/aaa.it .

Peccato non sia così ... per tutti i siti non configurati risponde sempre pubblicando i contenuti di /var/www/sites/aaa.it !!!! Provare per credere !!!!


L'illuminazione

Provate a rinominare underconstruction.conf in _underconstruction.conf ...

Semplice no o voi lo avevate già capito che dipendeva da ... ?

Byez

Il progresso non è altro che brancolare da un errore all'altro.

2 commenti:

Articoli correlati divisi per etichetta



Widget by Hoctro