Apache et virtualhosts

Salut,
Un petit soucis que je n’arrive pas à comprendre…

Serveur apache2 sur squeeze.

2 fichiers dans “sites-enabled”:

[code]cat /etc/apache2/sites-enabled/domaine.org
<VirtualHost *:80>
ServerAdmin webmaster@domaine.org
ServerName domaine.org
DocumentRoot /var/www/

Options FollowSymLinks AllowOverride None

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

AllowOverride All

Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog /var/log/apache2/error.log

Possible values include: debug, info, notice, warn, error, crit,

alert, emerg.

LogLevel warn

CustomLog /var/log/apache2/domaine.org/access.log cached

Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128

[/code]

et

[code]cat /etc/apache2/sites-enabled/webmail.domaine.org

ServerAdmin webmaster@domaine.org
DocumentRoot /var/www/webmail
ServerName webmail.domaine.org

<Directory "/var/www/webmail/">
	allow from all
	Options +Indexes
</Directory>
[/code]

Et bien je ne comprend pas pourquoi, quand je navigue sur domaine.org je suis redirigé sur webmail.domaine.org
Quand je tape domaine.org/fichier.html j’ai cette erreur dans Konqueror :

Merci d’avance pour vos éclaircissements.

DocumentRoot /var/www/webmail manquerait pas un / à la fin ?

Je ne pense pas que ce soit obligatoire, avec ou sans /, c’est idem pour un dossier.

Il n’a qu’à essayer, il verra si c’est pareil …

Non, c’est pas ça, j’avais déjà essayé…
J’ai pensé aussi que ça venait de ma zone dns… pas mieux.

Au cas ou:

domaine.org. IN A 192.168.0.3 www.domaine.org. IN A 192.168.0.3 domaine.org. IN NS passerelle.domaine.org. passerelle IN A 192.168.0.3 www.passerelle IN A 192.168.0.3 smtp.domaine.org. IN A 192.168.0.3 domaine.org. IN MX 10 smtp webmail IN A 192.168.0.3

J’avais webmail.domaine.org IN A 192.168.0.3 eu lieu de webmail tout court.

domaine.org me redirige sur domaine.org/src/login.php (le webmail)…

Re,

Du mieux… Ce n’est pas parfait, mais j’ai avancé…

Dans le “virtualhost” webmail, j’ai remplacé

ceci : <VirtualHost webmail.domaine.org:80> par cela : <VirtualHost *:80>

domaine.org = it works (Ok)
webmail.domaine.org = webmail (Ok)

Mais…

domaine.org/src/login.php). Et d’une façon bizare à mon goût… Ça ne devrait pas être domaine.org/webmail ou webmail.domaine.org ?

Un cador des virtualhosts pourrait m’expliquer ce truc ?

Non, c’est logique:

  1. le *:80 fait écouter le serveur sur toutes les interfaces, utilise ça.

  2. Il te faut un serveur par défaut, si tu fais

192.168.0.3/, ce sera ce serveur qui te répondra, et c’est aussi celui là qui répondra si aucun site n’est associé à l’URL d’appel.

Dans ta première configuration, un seul site fonctionnait.

Dans la deuxième, les 2 fonctionnent mais c’est webmail qui est le site par défaut.

Ok, merci pour ces précisions.
J’ai obtenu ce que je voulais en renommant domaine.org en default dans site-available…

J’ai fait une connerie en renommant “default”… C’était sous mon nez et je ne le voyais pas :blush:
Si la configuration par défaut installe un fichier “default” il y a une bonne raison…

Je vais pouvoir passer au reste.
Merci c’est résolu.

Et si a2enmod créé alors un lien qui s’appelle « 000-default » dans sites-enabled, ce n’est pas par hasard non plus !
(le premier site lu par apache est le site par défaut :wink: ).

J’avais même pas pris en compte les 000…
C’est un truc qu’il n’est pas évident de deviner tant qu’on a pas rencontré le problème.

Qu’est-ce qui est pris en compte au final ? Quel ordre prime ? alphabétique, alphanumérique ? les deux mais défault passe toujours en premier ?

default prime sur 000-default ou c’est l’inverse ?
domaine prime sur 000-domaine ou c’est l’inverse ?

Comment vérifier l’ordre ? (à part tester dans son navigateur - avec une dizaine de sous-domaine, ça peut vite devenir une galère…)
Il n’y a pas une commande “magique” pour vérifier l’ordre de chargement des sous-domaines ?

Faut-il tout simplement s’en tenir aux chiffres et éviter les noms ?

Dans apache2.conf :

# Include the virtual host configurations:
Include sites-enabled/

Il va lire les fichiers l’un après l’autre. Il te suffit de faire un

Le premier de la liste est ton site par défaut !

Merci.
Comme d’habitude le plus simple est le mieux…
Je vais faire des essais.

En passant, tu disais (dans le wiki) que “userdir_module” est activé par défaut. Ce n’est pas les cas dans mes squeeze ni ma Sid.

J’ai trouvé la belle commande qui va bien…

apache2ctl -S VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server sidlol.domaine.org (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost sidlol.domaine.org (/etc/apache2/sites-enabled/000-default:1) port 80 namevhost blog.domaine.org (/etc/apache2/sites-enabled/blog:1) port 80 namevhost fofo.domaine.org (/etc/apache2/sites-enabled/fofo:1) port 80 namevhost gallery.domaine.org (/etc/apache2/sites-enabled/gallery:1) port 80 namevhost pastebin.domaine.org (/etc/apache2/sites-enabled/pastebin:1) port 80 namevhost wiki.domaine.org (/etc/apache2/sites-enabled/wiki:1) Syntax OK

C’est donc bien par ordre alphabétique. Mais finalement pour les virtualhosts ça n’a pas d’importance, ce qui est primordail c’est le site par défaut…

Effectivement, je viens de voir que SSL non plus ! Je note, de toute façon j’ai encore quelques trucs à ajouter pour apache dans le wiki…