Configuration serveur Apache (virtual hosts)

Configuration serveur Apache (virtual hosts) - Logiciels - Linux et OS Alternatifs

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
Reply

Marsh Posté le 20-10-2005 à 11:52:36   

Reply

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

Reply

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>

Reply

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 !

Reply

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+

Reply

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/ ?


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

Marsh Posté le 21-10-2005 à 15:23:05    

t'as redemmaré apache apres avoir changé la config ?
 
/etc/init.d/httpd restart

Reply

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.

Reply

Marsh Posté le 21-10-2005 à 15:52:50    

nlc a écrit :

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.


 
chez moi, le reload ne change rien :(


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

Marsh Posté le 21-10-2005 à 15:55:04    

Exactement le meme probleme que toi
je bute dessus depuis ce matin, 2h :(


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

Marsh Posté le 21-10-2005 à 15:55:04   

Reply

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


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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?


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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


Message édité par LeKeiser le 21-10-2005 à 17:28:39

---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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

Reply

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 :
  1. NameVirtualHost 82.229.124.x
  2. <VirtualHost 82.229.124.x>
  3. ServerName www.domaine1.com
  4. ServerAlias domaine1.* *.domaine1.*
  5. DocumentRoot /var/www/html/domaine1
  6. </VirtualHost>
  7. <VirtualHost 82.229.124.x>
  8. ServerName www.domaine2.com
  9. ServerAlias domaine2.* *.domaine2.*
  10. DocumentRoot /var/www/html/domaine2
  11. </VirtualHost>


 
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/


Message édité par nlc le 21-10-2005 à 20:24:52

---------------
char table[] = {112,114,105,110,116,102,40,34,37,99,37,99,37,99,34,44,49,49,48,44,49,48,56,44,57,57,41,59,0}; char* tablePtr = table; while(*tablePtr) printf( "%c",*tablePtr++ );
Reply

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.
 
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


 
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.

Reply

Marsh Posté le 22-10-2005 à 00:36:48    

NLC : Chez moi, ca ne marche toujours pas.
 
Voici ma conf :

Citation :


 
NameVirtualHost 192.168.1.150:80
<VirtualHost 192.168.1.150:80>
        ServerAdmin webmaster@localhost
        ServerName webmail.lekeiser.com
        ServerAlias webmail.lekeiser.com
        DocumentRoot /var/www/squirrelmail
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
#                RedirectMatch ^/$ /squirrelmail/
        </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 /var/log/apache2/error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
 
    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
    </Directory>
 
</VirtualHost>


et pour le deuxieme site :  

Citation :


NameVirtualHost 192.168.1.150:80
<VirtualHost 192.168.1.150:80>
        ServerName test.lekeiser.com
        ServerAlias test.lekeiser.com
        ServerAdmin webmaster@localhost
 
        DocumentRoot /var/www/test
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
#                RedirectMatch ^/$ /test/
        </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 /var/log/apache2/error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
 
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
 
    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
    </Directory>
 
</VirtualHost>


 
Le site webmail marche sans probleme.
Si j'essaie d'aller dans le site test, j'obtiens :  

Citation :


[Sat Oct 22 00:24:10 2005] [error] [client 192.168.1.10] File does not exist: /var/www/squirrelmail/test


 
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...


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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 ?

Message cité 1 fois
Message édité par nlc le 22-10-2005 à 01:13:35
Reply

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 ?

Message cité 1 fois
Message édité par Zzozo le 22-10-2005 à 01:31:59

---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 22-10-2005 à 01:53:17    

Zzozo a écrit :

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 ?


 
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.


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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 ?
 
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 ?


 
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.


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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 :jap: )
 
et ca passe :)


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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'
Je tape directement via l'adresse IP et le repertoire. Dans celui-ci, il y a un index.html tout simple.


Et tu t'étonnes que tu ais des problèmes à tester les "VirtualHosts" basés sur des noms de domaine ? [:yamusha]


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

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 :)


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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 ? :)


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

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 :)


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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  ;)


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 22-10-2005 à 11:24:52    

Ben si. Ca marchait pour le site default de Apache, et pour le webmail :)


---------------
"I intend to live the first half of my life.I don't care about the rest."Errol Flynn."The difference between genius and stupidity is that genius has its limits."Albert Einstein
Reply

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  :)


Message édité par Zzozo le 22-10-2005 à 11:50:05

---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

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'
Je tape directement via l'adresse IP et le repertoire. Dans celui-ci, il y a un index.html tout simple.


 
 
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 !
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed