[Résolu]Apache2 VirtualHost

Bonjour,

Actuellement j’essaye de créer un virtualHost au seins de Apache2 en m’aidant de ce tutoriel (Hôtes virtuels basés sur le nom).

Je rencontre cependant quelques difficultés, je n’arrive pas à accéder à ma page index.php qui est dans le dossier /var/www/monsite1. Le navigateur m’affiche Adresse introuvable lorsque je tape monsite1.fr MAIS s’affiche lorsque je tape 127.0.0.n (n allant jusqu’a 255).

Mon fichier /etc/hosts :[quote]127.0.0.1 localhost
127.0.1.1 debian
127.0.0.2 monsite1.fr monsite1.fr
#THe following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters[/quote]Lorsque je ping monsite1.fr cela fonctionne.

J’ai désactiver le site par défaut (supprimer le lien symbolique).

Fichier virtualHost de monsite1.fr :[quote]<VirtualHost *:80> //J’ai également essayé <VirtualHost 127.0.0.2:80>
ServerAdmin webmaster@localhost
ServerName monsite1.fr
ServerAlias monsite1.fr

DocumentRoot /var/www/monsite1
<Directory />
	Options FollowSymLinks
	AllowOverride None
</Directory>
<Directory /var/www/monsite1>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride None
	Order allow,deny
	allow from all
</Directory>

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

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
[/quote]

Puis, d’après le tuto, comment la machine sait que lorsqu’on tape 127.0.0.1 dans le navigateur on doit allez sur monsite2.fr ?
Enfin, imaginons que mon alias s’appelle debian-fr.org, comment sait-il si je veux accéder au site en local ou au site “original” ?

Pourriez-vous m’aider ? Merci.

Je n’ai pas tout suivi.

Ton site, tu souhaites le rendre accessible uniquement depuis ton réseau local ?

Car les modifications du fichier hosts, ça n’est bon que pour faire des essais sur ta machine. Sinon il faut évidemment changer les DNS pour que ça colle avec ton IP publique.

Ensuite, tu n’es pas censé accéder à ton site via l’adresse IP, mais via le nom de domaine, et c’est là que la redirection vers le bon site se fait.

En entrant directement l’IP tu dois pouvoir avoir une destination par défaut, mais tu ne peux pas héberger plusieurs sites sous cette même IP. Donc tu tomberas sur une erreur 404 avec l’accès direct via l’IP.

Ton fichier hosts pourrait donc contenir plutôt ceci:

# utiliser différentes adresses IP pour le loopback ne présente ici pas d'intérêt 127.0.0.1 www.monsite1.fr monsite1.fr 127.0.0.1 www.monsite2.fr monsite2.fr

Merci pour ta réponse rapide Zbf.[quote]Ton site, tu souhaites le rendre accessible uniquement depuis ton réseau local ?[/quote]Oui, je souhaite le rendre uniquement accessible pour travailler dessus en local.

J’ai besoin de tes connaissances afin d’y voir un peu plus claire, n’hésite pas à me donner des précisions si tu penses que je n’ai pas tout compris :wink:

1)Dans l’exemple suivant cela veut dire que si je tape 127.0.0.1 une erreur 404 sera afficher car deux noms correspondent à la même adresse ? (et que donc ils ne peuvent être accessible uniquement via monsite1.fr ou monsite2.fr) [quote]Ton fichier hosts pourrait donc contenir plutôt ceci:

# utiliser différentes adresses IP pour le loopback ne présente ici pas d'intérêt 127.0.0.1 www.monsite1.fr monsite1.fr 127.0.0.1 www.monsite2.fr monsite2.fr[/quote]2)Imaginons que le fichier précédent soit :127.0.0.1 www.debian-fr.org debian-fr.orgComment le navigateur sait-il que je veux afficher mon site en local et non le site actuel sur lequel nous sommes ?

3)Avant de voir ta réponse j’ai modifier mon fichier hosts :[quote]127.0.0.1 localhost
127.0.1.1 debian
127.0.0.2 www.monsite1.fr monsite1.fr
127.0.0.3 www.monsite2.fr monsite2.fr[/quote]Avec cette méthode ce que je voulais faire fonctionne, en effet je peux accéder à mes sites en tapant : 127.0.0.2/monsite1.fr ou 127.0.0.3/monsite2.fr, qu’en penses-tu ?

Enfin je te montre les fichiers virtuel hôte correspondant aux deux domaines afin d’avoir ton avis sur toute la construction.(les deux sont similaires mise à part leur nom…)[quote]
ServerAdmin webmaster@localhost
ServerName monsite2.fr
ServerAlias www.monsite2.fr

DocumentRoot /var/www/monsite2
<Directory />
	Options FollowSymLinks
	AllowOverride None
</Directory>
<Directory /var/www/monsite2>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride None
	Order allow,deny
	allow from all
</Directory>

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

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

[/quote]

Merci d’avoir pris le temps de lire mon message jusqu’au bout :wink:

Je ne sais faire que le minimum avec Apache,

Dans ton cas 1, le problème ne vient pas de la “confusion” du fait qu’il y ait 2 sites, mais d’ailleurs.
Quand je fais des tests en local je me suis toujours contenté d’un seul site défini dans Apache, donc la config par défaut d’Apache me suffisait, où effectivement je pouvais accéder aux pages via 127.0.0.1/un_répertoire.
Hormis cet usage type «je fais mes tests» en local, il est rare qu’on accède à un site directement via son adresse IP.

  1. Le fichier hosts a la priorité sur la résolution des noms par ton serveur DNS.
    Si dans ton fichier hosts tu n’as aucune ligne concernant debian-fr.org, il se servira de ton serveur DNS pour la résoudre.
    Si elle y est, ton navigateur web traduira debian-fr.org par l’IP que tu as mise.

Si tu modifies ton fichier hosts, il faut que tu redémarres le navigateur pour qu’il le prenne en compte.

  1. Je n’ai pas vérifié mais je pense dans ton cas que tu peux tout aussi bien accéder aux sites via:
    monsite2.fr
    Pour rappel, le fichier hosts “court-circuite” la résolution DNS. On s’en sert pour faire nos tests en local «comme si» on surfait sur les vrais sites avec les bonnes URLs, ce qui est important quand on utilise l’URL Rewriting par expl.

Sinon, tu n’as aucune raison de mettre des IPs différentes pour tes sites.
D’une part, 127.0.0.1 et 127.0.0.2 ainsi que les autres IPs situées dans la tranche 127...* désignent la même interface.
D’autre part, selon le mécanisme que tu veux mettre en place, ça n’est pas l’IP qui détermine quel site sera accédé, mais son nom de domaine !

Mets toi à la place d’un serveur internet qui héberge 10 sites. Le discriminant se fait sur le nom de domaine passé dans la requête GET, et non pas sur l’IP.

J’explique mal, mais ce genre de doc sur le fonctionnement basique d’Apache doit se trouver.

Je n’ai pas tout lu mais je te donne mon exemple :
J’ai un serveur distant et un serveur local qui me sert à tester.
Pour ce dernier, dans la barre d’adresse, je lance avec l’IP interne ainsi :
192.168.1.4
en comprenant que mon site est à la base de /var/www

Bien sûr, mon serveur est connecté sur le ‘4’ du LAN
Je communique en SSH, à partir de ma machine principale qui est, elle : 192.168.1.1

Merci Zbf pour ton explication et Ricardo pour ton exemple.[quote]J’explique mal, mais ce genre de doc sur le fonctionnement basique d’Apache doit se trouver.[/quote]Non, je pense avoir compris les grandes lignes de tes explications, sujet résolut :wink:.

Salut,

Alors, si le sujet est résoluT n’omets pas la coche verte :slightly_smiling: