Configuration serveur Apache (virtual hosts) - Logiciels - Linux et OS Alternatifs
Marsh Posté le 20-10-2005 à 11:58:44
Il faut que tu regardes tu coté des virtualhost.
Tu défini un virtualhost auquel tu assigne un document root différent
Marsh Posté le 20-10-2005 à 12:00:01
il faut ecrire 2 virtualhost différents, 1 pour chaque nom de domaine.
<virtualhost www.domaine1.com>
documentroot /home/rep1
nameserver www.domaine1.com
</virtualhost>
<virtualhost www.domaine2.com>
documentroot /home/rep2
nameserver www.domaine2.com
</virtualhost>
Marsh Posté le 20-10-2005 à 14:32:20
Excellent !!
Ca fontionne a merveille !
En fait j'ai rien touché pour le domaine 1, dont les fichiers se trouvent toujours dans /var/www/html/, et j'ai rajouté un virtual host dans /etc/httpd/conf/vhosts/Vhosts.conf dont le repertoire racine pointe sur /var/www/html/domaine2/
Et donc un petit /etc/init.d/httpd restart, et ca tourne !
Merci a vous deux !
Marsh Posté le 21-10-2005 à 14:31:06
Oui !
En fait dans mon httpd2.conf, il y'a une inclusion du fichier /vhosts/Vhosts.conf.
Ils ont du faire ca pour bien separer les configs afin d'ameliorer la lisibilité.
Voila ce qu'il faut mettre dans le fichier de config si tu veux gerer 2 sites (ou plus) avec le meme serveur :
# Mettre l'adresse IP du serveur
NameVirtualHost 82.229.124.x
# On definit d'abord l'hote par defaut
# Si apache recoit un nom d'hote qui ne correspond a aucun host virtuel, il utilisera le 1er de la liste
<VirtualHost 82.229.124.x>
ServerName www.domaine1.com
ServerAlias domaine1.* *.domaine1.*
DocumentRoot /var/www/html
</VirtualHost>
# Definition du 2eme hote
<VirtualHost 82.229.124.x>
ServerName www.domaine2.com
ServerAlias domaine2.* *.domaine2.*
DocumentRoot /var/www/......
</VirtualHost>
etc...
A+
Marsh Posté le 21-10-2005 à 15:21:25
Ton erreur, c'est pas lorsque tu lances ton browser pour aller sur geom.epfl.ch, Apache va dans /igat.epfl.ch/ ?
Marsh Posté le 21-10-2005 à 15:23:05
t'as redemmaré apache apres avoir changé la config ?
/etc/init.d/httpd restart
Marsh Posté le 21-10-2005 à 15:27:33
Et si tu l'avais redemarré, qu'a tu constaté comme probleme ?
Que tu ailles sur igat.epfl.ch ou sur geom.epfl.ch, tu obtiens toujours le site stocké dans /opt/lampp/htdocs/igat/ ?
Autre chose, avec ton navigateur, va sur geom.epfl.ch et fait un reload au cas ou.
Marsh Posté le 21-10-2005 à 15:52:50
nlc a écrit : Et si tu l'avais redemarré, qu'a tu constaté comme probleme ? |
chez moi, le reload ne change rien
Marsh Posté le 21-10-2005 à 15:55:04
Exactement le meme probleme que toi
je bute dessus depuis ce matin, 2h
Marsh Posté le 21-10-2005 à 16:26:04
Je ne comprends pas : tu as mis tes deux sites au meme endroit??
DocumentRoot /opt/lampp/htdocs/
DocumentRoot /opt/lampp/htdocs/geom
Marsh Posté le 21-10-2005 à 17:11:05
Oui, mais la, j'ai du mal a comprendre.
En fait, tu prends une echappatoire : tu n'as pas cree un deuxieme site, tu passes par le premier, et le deuxieme est contiendu dedans.
Ou je me gourre?
Marsh Posté le 21-10-2005 à 17:26:34
Pourtant, pour le site 1 :
DocumentRoot /opt/lampp/htdocs/
Site 2 :
DocumentRoot /opt/lampp/htdocs/geom
donc la source du site 2 se trouve dans le site 1.
Tu contournes donc le probleme (le site 2 pointe sur le site 1) en mettant le site 2 dans le site 1.
La logique voudrait que :
Site 1 --> DocumentRoot /opt/lampp/htdocs/igat
Site 2 --> DocumentRoot /opt/lampp/htdocs/geom
Marsh Posté le 21-10-2005 à 17:57:52
Ben en fait, comme j'ai plein de fichier sur le site 1, donc dans /var/www/html/ , et que c'etait le site d'origine avant que j'ai besoin d'un 2eme site, j'ai pas voulu m'embeter a les deplacer, j'ai juste crée un sous repertoire pour le 2eme site.
Et donc toi, pour le 2eme site, t'as une erreur 404 car il cherche dans le documentroot du domaine1. Bizarre.
Je vais essayer de faire comme toi pour voir ce que ca donne, mettre les 2 sites dans 2 repertoire differents
Marsh Posté le 21-10-2005 à 20:22:02
Bon j'ai essayé de mettre 2 repertoires differents pour les 2 sites (car au depart j'avais aussi inclu le 2eme dans le 1er).
Ben ca fonctionne.
Voici la config exacte :
Code :
|
Vous remarquerez que j'ai mis des alias, car en fait j'ai configuré les dns pour que tous ces noms pointent sur mon IP :
domaine1.com
w.domaine1.com
ww.domaine1.com
www.domaine1.com
domaine1.fr
w.domaine1.fr
ww.domaine1.fr
www.domaine1.fr
Idem pour le domaine2. Les alias ca permet donc de ne pas avoir a declarer un virtual host par nom de domaine.
Si ca marche pas chez vous, peut etre faudrait il aussi verifier les droits d'acces aux repertoires ou vous stockez les sites ?
Essayez voir de faire comme moi et de mettre vos repertoires de sites dans /var/www/html/
Marsh Posté le 22-10-2005 à 00:26:07
nlc a écrit : Ben en fait, comme j'ai plein de fichier sur le site 1, donc dans /var/www/html/ , et que c'etait le site d'origine avant que j'ai besoin d'un 2eme site, j'ai pas voulu m'embeter a les deplacer, j'ai juste crée un sous repertoire pour le 2eme site. |
En bref, essayer de contourner une usine à gaz qu'on a construit soi-même
Dans ce cas, il est facile de comprendre que Apache ait un peu de mal à s'y retrouver.
Marsh Posté le 22-10-2005 à 00:36:48
NLC : Chez moi, ca ne marche toujours pas.
Voici ma conf :
Citation : |
et pour le deuxieme site :
Citation : |
Le site webmail marche sans probleme.
Si j'essaie d'aller dans le site test, j'obtiens :
Citation : |
Les deux sites ont les droits www-data.
La, maintenant, je ne vois pas.
Je rappelle juste que je tourne sous Apache2. Les deux sites sont bien actifs dans /etc/apache2/sites-available. Meme le default l'est aussi...
Marsh Posté le 22-10-2005 à 01:10:58
Pourquoi tu n'essayes pas dans un premier temps de simplifier au maximum tout ce qu'il y'a dans les balises virtualhost ?
Y'a tellement de trucs que si ca se trouve le probleme ne vient pas de là ou on croit.
C'est ce que je fais en general, je fais marcher le truc le plus bateau, et on teste au fur et a mesure des configs plus complexe.
Donc deja essaye strictement la meme config que moi en remplacant par tes adresses, noms de domaines et chemins pour voir.
Sinon je vois que t'as mis une adresse IP privé dans tes config. Ton serveur est accessible de l'exterieur ou seulement en local ?
Marsh Posté le 22-10-2005 à 01:26:16
LeKeiser > Tes ServerAlias ... servent à quoi, là ?
T'as quoi dans les logs de apache ?
Et c'est quoi l'url exacte que tu mets quand tu cherches à naviguer sur le 2ème site ?
EDIT : Et il y'a quoi dans ton répertoire /var/www/test ?
Marsh Posté le 22-10-2005 à 01:53:17
Zzozo a écrit : LeKeiser > Tes ServerAlias ... servent à quoi, là ? |
Ils ne servent a rien en effet, c'etait des essais hier matin a 2h du mat'
Je tape directement via l'adresse IP et le repertoire. Dans celui-ci, il y a un index.html tout simple.
Marsh Posté le 22-10-2005 à 01:54:42
nlc a écrit : Pourquoi tu n'essayes pas dans un premier temps de simplifier au maximum tout ce qu'il y'a dans les balises virtualhost ? |
ce qu'il y a dans les balises, c'est ce que j'ai recupere du site Default.
En y regardant de plus pres, je ne vois rien qui puisse faire que le deuxieme site atterisse dans le premier
Pour l'instant, je teste en local uniquement.
Marsh Posté le 22-10-2005 à 02:26:00
Bon, ca marche enfin
J'ai change plusieurs petites choses dans chacun des sites :
_ NameVirtualHost *:80
_ <VirtualHost *:80>
_ virer les alias qui servaient vraiment a rien (merci Zzozo )
et ca passe
Marsh Posté le 22-10-2005 à 06:21:07
LeKeiser a écrit : Ils ne servent a rien en effet, c'etait des essais hier matin a 2h du mat' |
Et tu t'étonnes que tu ais des problèmes à tester les "VirtualHosts" basés sur des noms de domaine ?
Marsh Posté le 22-10-2005 à 11:06:47
Mais comme je l'ai dit, je ne teste pas pour l'instant des noms de domaines, je teste l'acces aux sites
Marsh Posté le 22-10-2005 à 11:17:23
LeKeiser a écrit : Mais comme je l'ai dit, je ne teste pas pour l'instant des noms de domaines, je teste l'acces aux sites |
Mais tu te rend compte que ça pouvait pas fonctionner correctement en attaquant avec les IPs directement ?
Marsh Posté le 22-10-2005 à 11:21:55
Zzozo a écrit : Mais tu te rend compte que ça pouvait pas fonctionner correctement en attaquant avec les IPs directement ? |
Ca marchait bien pour un site. Pas le deuxieme
Marsh Posté le 22-10-2005 à 11:23:47
LeKeiser a écrit : Ca marchait bien pour un site. Pas le deuxieme |
Mais non, ça ne marchait pas, et par défaut, il prenait le premier dispo dans la liste, car aucun matchait
Marsh Posté le 22-10-2005 à 11:24:52
Ben si. Ca marchait pour le site default de Apache, et pour le webmail
Marsh Posté le 22-10-2005 à 11:32:57
Hou là ... ça fait longtemps que tu t'es mis à Apache, dis moi ?
Parce que en lisant ta conf, je viens de voir pourquoi tu risquais pas d'y arriver, si tu es pas encore l'aise avec apache et sa conf
D'après ce que je lis, le site par défaut d'Apache et le webmail sont sur le MEME named virtualhost ... tu comprends où je veux en venir ?
Remets la conf d'hier soir, mais en mettant en premier (dans l'ordre de lecture du fichier de conf) le named virtual host de test, et réessayes, tu comprendras
Marsh Posté le 22-10-2005 à 13:39:31
LeKeiser a écrit : Ils ne servent a rien en effet, c'etait des essais hier matin a 2h du mat' |
A ben oui !! Je vois mieux pourquoi ca marche pas !!
Si tu met l'adresse P dans ton naviguateur, ton navigateur n'envoit pas dans la requete le nom de domaine que tu cherche a joindre !
Donc apache te redirige par defaut dans le premier virtual host configuré.
Pour que tu puisses faire un essai reel, il faut que tu edites ton fichier /etc/hosts et que tu mettes dedans :
192.168.1.150 webmail.lekeiser.com
192.168.1.150 test.lekeiser.com
Ensuite tu edites /etc/host.conf et tu verifies qu'il y a la ligne :
order hosts,bind
(C'est a dire que linux va d'abord lire le contenu du /etc/hosts avant de faire des requetes DNS)
Ensuite dans ton navigateur tu mets pour le 1er site : webmail.lekeiser.com
Et bien sur test.lekeiser.com pour le 2eme
Donc a ce moment ton navigateur va envoyer a 192.168.1.250 ce que tu avais tapé dans ton navigateur, et apache saurra dans quel repertoire chercher le site !
Marsh Posté le 20-10-2005 à 11:52:36
Bonjour a tous !
Bon, je suis sur que la reponse a ma question est extremement simple.
Actuellement, j'ai un serveur web apache qui heberge une simple page.
Je possede une IP fixe, et j'ai acheté un nom de domaine qui pointe vers cette IP.
Donc quand on tape le nom de domaine dans un navigateur, on tombe sur la page web.
Maintenant, j'ai acheté un 2eme nom de domaine, qui pointe sur la meme adresse IP, mais je voudrais que ca affiche une page differente.
En gros, il faudrait dans apache 2 repertoires, un pour stocker les pages concernant le 1er nom de domaine, et un pour stocker les pages du 2eme, et en fonction du nom de domaine appelé, il faudrait que apache aille chercher la page dans le bon repertoire.
Savez vous comment faire ?
Merci a tous !
Cyril
Message édité par nlc le 21-10-2005 à 15:34:34