On Fri, 9 Mar 2001, Marc Mongenet wrote:
> On pourrait aussi reprocher à Apache de ne pas se satisfaire d'un nom
> local lorsqu'il ne trouve rien d'autre, non ?
Oui.
En théorie d'ailleurs les scripts de Debian *devraient* poser la question
si l'interface n'est pas connue. A voir ils ne le font qu'en cas de
virtual host, mais je n'ai pas creusé.
J'ai reporté un bug, pour voir, à Debian.
J'ai tenté de reproduire le problème et, effectivement, si je commente,
dans /etc/hosts:
#193.72.186.8 defian.alphanet.ch defian
et on a:
defian:% hostname
le problème se produit. Que se passe-t-il si je magouille /etc/hosts
pour que `hostname` soit 127.0.0.1 ? Même problème. En fait cela ne marche
qu'avec une ligne:
ADRESSE_IP defian.alphanet.ch defian
Donc un fichier /etc/hosts avec seulement:
127.0.0.1 defian.alphanet.ch defian localhost
semble marcher.
Alors que
127.0.0.1 localhost defian.alphanet.ch defian
ne fonctionne pas. N'oublions pas que le premier nom est normalement le
nom retourné par un unresolve() (IP adress -> nom), dans l'absence d'un
DNS bien sûr.
On peut donc en déduire que si resolve(`hostname`) n'est pas possible, ou
si unresolve(resolve(`hostname`.`domainname`)) != `hostname`.`domainname`,
Apache refuse de démarrer:
defian:# /etc/init.d/apache start
Starting web server: apache.
apache: cannot determine local host name.
Use the ServerName directive to set it manually.
/usr/sbin/apachectl start: httpd could not be started
(et propose de configurer ServerName)
> - Comment Apache reconnaît les noms locaux ?
Ceux qui sont corrects (propriété symétrique unresolve/resolve).
> - Pourquoi ne trouve-t-il pas le nom réseau lorsque je suis connecté ?
n'est pas `hostname`.
En bref, sans réseau local fixe correctement configuré, mettre ServerName
manuellement :)
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.