IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

VirtualHost pour sous-domaine


Sujet :

Apache

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut VirtualHost pour sous-domaine
    Bonjour à tous,
    Je vous soumets mon problème. J'ai un nom de domaine que nous nommerons domaine.fr (original n'est-ce pas ?) et un sous-domaine sd.domaine.fr.
    J'ai configuré mes virtualhosts de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <VirtualHost *:80>
            ServerName domaine.fr
            ServerAdmin xxxx@domaine.fr
            DocumentRoot /var/www
    </VirtualHost>
     
    <VirtualHost *:80>
            ServerName sd.domaine.fr
            ServerAdmin xxxx@domaine.fr
            DocumentRoot /var/www/sd
    </VirtualHost>
    Je pensais que cela suffirait pour diriger les adresses www.domaine.fr vers la racine de mon serveur web et les adresses sd.domaine. fr vers le répertoire sd, mais ce n'est pas le cas. Dans ce cas, toutes les adresses sont redirigées vers la racine. J'ai essayé de supprimer le premier virtualhost pour voir ce que cela donnait, toutes les adresses sont redirigées alors vers le répertoire sd. Y-a-t'il quelque chose à ajouter ? Je précise que je suis en version 2.4 de Apache.

    Cordialement,

    Jean-Pierre.

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Bon, personne ne semble inspiré par mon souci . J'ai continué à 'expérimenter' en créant trois sous-domaines avec chacun son fichier de configuration contenant la définition du virtualhost correspondant. Et bien, quelque soit l'adresse saisie dans mon navigateur (donc commençant par un des trois sous-domaine), la page affichée correspond toujours au premier fichier '.conf' rencontré dans l'ordre alphabétique.
    Toujours pas d'idée ?

    Cordialement,

    Jean-Pierre.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    J'ai peut-être une piste, dans la doc d'Apache, il est écrit :
    Dans le cas où vous disposez de deux serveurs virtuels par nom, le client doit transmettre un en-tête Host:
    J'ai vérifié dans le fichier access.log les requêtes reçues, elles ressemblent à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XXX.XXX.XXX.XXX - - [23/Dec/2013:21:44:08 +0100] "GET / HTTP/1.1" 200  423 "http://sd.domaine.fr/" "Mozilla/5.0 (X11; Linux x86_64; rv:26.0)  Gecko/20100101 Firefox/26.0"
    N'est pas ce Host qui est manquant ? A savoir que la redirection vers mon serveur est effectuée par frame depuis mon fournisseur de nom de domaine. Est-ce que cela vous éclaire ? Parce que moi, je n'y comprends pas grand chose

    Cordialement.

    Jean-Pierre

  4. #4
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    As-tu activé la directive NameVirtualHost ?

    Si non, ajoute la, ça permet de stipuler à Apache de distinguer les virtualhost par le servername plutot que le couple IP/port.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Merci Marc, enfin une réponse J'ai l'impression que tout le monde est déjà à préparer les fêtes !
    Citation Envoyé par Marc3001 Voir le message
    As-tu activé la directive NameVirtualHost ?
    NameVirtualHost n'a plus aucun effet sur Apache 2.4 dixit la documentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La directive <a href="http://httpd.apache.org/docs/current/mod/core.html#namevirtualhost" target="_blank">NameVirtualHost</a> n'a plus aucun effet, si ce n'est l'émission d'un avertissement. Toute combinaison adresse/port apparaissant dans plusieurs serveurs virtuels est traitée implicitement comme un serveur virtuel basé sur le nom.
    En relisant cela, j'ai essayé de mettre explicitement l'adresse du serveur au lieu de '*', cela n'a rien changé.

    Cordialement,

    Jean-Pierre

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Bonjour et joyeux Noël à tous,

    Bon, en fait, je m'aperçois que, même en désactivant tous mes virtualhost (le répertoire sites-enabled est vide), toutes les adresses concernant mes sous-domaines sont dirigées vers le répertoire principal. De plus, les accès étaient loggés dans other-vhosts-acces-log.conf, ce qui veut bien dire que les requêtes ne sont pas reconnues comme correspondant à mes virtualhosts définis. Y'a personne pour m'aider ?

    Cordialement,

    Jean-Pierre.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Bonjour à tous,
    Bon, pour supprimer le doute sur la redirection par mon fournisseur de nom de domaine, j'ai créé un virtualhost avec un nom différent du style perso.autredomaine.fr et j'ai modifié le fichier hosts d'un PC client afin que cet URL corresponde à l'IP de mon serveur. J'ai bien entendu créé un fichier de config pour le virtualhost de Apache. Et bien, kif kif, j'atterri sur la racine de mon serveur et non pas dans le dossier dédié à cette URL. J'ai fait la même chose sur un autre serveur de mon boulot (avec Apache 2.2 par contre), et cela fonctionne. Et lorsque je regarde les fichiers logs des accès, sur le serveur de mon boulot, la ligne commence par perso.autredomaine.fr alors que sur mon serveur perso, elle commence par autredomaine.fr. C'est donc ce que j'avais déjà remarqué, quelque soit l'URL indiqué, on dirait qu'Apache ne voit pas le sous-domaine. Toujours personne pour me donner une idée ?

    Cordialement,

    Jean-Pierre.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    C'est encore moi,
    D'après cela, mes virtualhosts sont bien configurés, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # apachectl -t -D DUMP_VHOSTS
    VirtualHost configuration:
    XXX.XXX.XXX.XXX:80        is a NameVirtualHost
             default server www.domaine.fr (/etc/apache2/sites-enabled/000-default.conf:8)
             port 80 namevhost www.domaine.fr (/etc/apache2/sites-enabled/000-default.conf:8)
                     alias domaine.fr
             port 80 namevhost sd1.domaine.fr (/etc/apache2/sites-enabled/http-sd1.conf:1)
                     alias www.sd1.domaine.fr
             port 80 namevhost sd2.domaine.fr (/etc/apache2/sites-enabled/http-sd2.conf:1)
                     alias www.sd2.domaine.fr
             port 80 namevhost sd3.domaine.fr (/etc/apache2/sites-enabled/http-sd3.conf:1)
                     alias www.sd3.domaine.fr
    Mais effectivement, les requêtes enregistrées dans other_vhosts_acces.log ne contiennent jamais le sous-domaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    domaine.fr:80 192.168.0.254 - - [26/Dec/2013:23:45:39 +0100] "GET / HTTP/1.1" 200 423 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0"
    Pourquoi ?

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Bonjour à tous,
    Toujours à la recherche de mon sous-domaine perdu, j'ai activé le plus fort niveau de log d'Apache, et voici le résultat pendant une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    [Sat Dec 28 12:44:08.328211 2013] [http:trace4] [pid 4721] http_request.c(301): [client 192.168.0.254:50994] Headers received from client:
    [Sat Dec 28 12:44:08.328230 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   Host: sd1.domaine.fr
    [Sat Dec 28 12:44:08.328246 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/201$
    [Sat Dec 28 12:44:08.328262 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   Accept: text/html,application/xhtml+xml,application/xml;q=0.9,$
    [Sat Dec 28 12:44:08.328277 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   Accept-Language: fr-fr,en-us;q=0.7,en;q=0.3
    [Sat Dec 28 12:44:08.328291 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   Accept-Encoding: gzip, deflate
    [Sat Dec 28 12:44:08.328305 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   DNT: 1
    [Sat Dec 28 12:44:08.328319 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   Connection: keep-alive
    [Sat Dec 28 12:44:08.328333 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   If-Modified-Since: Sun, 22 Dec 2013 17:49:12 GMT
    [Sat Dec 28 12:44:08.328348 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   If-None-Match: \\"50-4ee2321124902-gzip\\"
    [Sat Dec 28 12:44:08.328363 2013] [http:trace4] [pid 4721] http_request.c(305): [client 192.168.0.254:50994]   Cache-Control: max-age=0
    [Sat Dec 28 12:44:08.328481 2013] [authz_core:debug] [pid 4721] mod_authz_core.c(802): [client 192.168.0.254:50994] AH01626: authorization result of Require all granted: gra$
    [Sat Dec 28 12:44:08.328528 2013] [authz_core:debug] [pid 4721] mod_authz_core.c(802): [client 192.168.0.254:50994] AH01626: authorization result of <RequireAny>: granted
    [Sat Dec 28 12:44:08.328544 2013] [core:trace3] [pid 4721] request.c(238): [client 192.168.0.254:50994] request authorized without authentication by access_checker_ex hook: /
    [Sat Dec 28 12:44:08.328838 2013] [filter:trace4] [pid 4721] mod_filter.c(169): [client 192.168.0.254:50994] Content-Type 'text/html' ...
    ......
    [Sat Dec 28 12:44:08.329125 2013] [filter:trace2] [pid 4721] mod_filter.c(188): [client 192.168.0.254:50994] Content-Type condition for 'deflate' matched
    [Sat Dec 28 12:44:08.329439 2013] [deflate:debug] [pid 4721] mod_deflate.c(764): [client 192.168.0.254:50994] AH01384: Zlib: Compressed 80 to 71 : URL /index.html
    [Sat Dec 28 12:44:08.329581 2013] [http:trace3] [pid 4721] http_filters.c(963): [client 192.168.0.254:50994] Response sent with status 200, headers:
    [Sat Dec 28 12:44:08.329606 2013] [http:trace5] [pid 4721] http_filters.c(970): [client 192.168.0.254:50994]   Date: Sat, 28 Dec 2013 11:44:08 GMT
    [Sat Dec 28 12:44:08.329619 2013] [http:trace5] [pid 4721] http_filters.c(973): [client 192.168.0.254:50994]   Server: Apache/2.4.6 (Debian)
    [Sat Dec 28 12:44:08.329636 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Last-Modified: Sun, 22 Dec 2013 17:49:12 GMT
    [Sat Dec 28 12:44:08.329651 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   ETag: \\"50-4ee2321124902-gzip\\"
    [Sat Dec 28 12:44:08.329665 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Accept-Ranges: bytes
    [Sat Dec 28 12:44:08.329678 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Vary: Accept-Encoding
    [Sat Dec 28 12:44:08.329692 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Content-Encoding: gzip
    [Sat Dec 28 12:44:08.329733 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Content-Length: 89
    [Sat Dec 28 12:44:08.329748 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Keep-Alive: timeout=5, max=100
    [Sat Dec 28 12:44:08.329761 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Connection: Keep-Alive
    [Sat Dec 28 12:44:08.329775 2013] [http:trace4] [pid 4721] http_filters.c(806): [client 192.168.0.254:50994]   Content-Type: text/html
    [Sat Dec 28 12:44:08.329848 2013] [core:trace6] [pid 4721] core_filters.c(525): [client 192.168.0.254:50994] core_output_filter: flushing because of FLUSH bucket
    [Sat Dec 28 12:44:08.388936 2013] [core:trace4] [pid 4715] mpm_common.c(528): mpm child 4747 (gen 0/slot 5) started
    [Sat Dec 28 12:44:13.332844 2013] [core:trace6] [pid 4721] core_filters.c(525): [client 192.168.0.254:50994] core_output_filter: flushing because of FLUSH bucket
    La requête reçue comporte donc bien le sous-domaine, quelque chose vous semble-t-il anormal dans ce log ?

    Cordialement,

    Jean-Pierre

  10. #10
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Tu me confirmes que si tu n'actives que les 3 virtualhosts liés aux 3 sous domaines
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
             port 80 namevhost sd1.domaine.fr (/etc/apache2/sites-enabled/http-sd1.conf:1)
                     alias www.sd1.domaine.fr
             port 80 namevhost sd2.domaine.fr (/etc/apache2/sites-enabled/http-sd2.conf:1)
                     alias www.sd2.domaine.fr
             port 80 namevhost sd3.domaine.fr (/etc/apache2/sites-enabled/http-sd3.conf:1)
                     alias www.sd3.domaine.fr
    toutes tes requêtes sont redirigées vers sd1.domaine.fr ?

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 80
    Points : 58
    Points
    58
    Par défaut
    Merci Marc pour ta sollicitude mais ça y est, j'ai enfin trouvé les bons paramétrages pour faire fonctionner tout cela. Alors déjà, grossière erreur de ma part, lorsque j'ai remplacé <VirtualHost *:80> par <VirtualHost XXX.XXX.XXX.XXX:80>, j'ai mis l'adresse IP publique alors qu'il fallait, je pense, mettre l'adresse IP du LAN . Cela a fait que tous mes essais ont été erronés puisque tous mes VirtualHosts ne correspondaient à rien sur ma machine. J'ai repositionné '*', et là, je me suis aperçu qu'un des sous-domaine fonctionnait. Comme la configuration Apache était similaire pour les trois, je me suis douté que le problème était en amont. Je suis donc retourné sur la configuration de la redirection de mon fournisseur de domaine ( 1&1 ) et j'ai placé la même configuration sur les trois sous-domaines, et hop, tout fonctionne à merveille .
    Pour résumer, si quelqu'un est dans le même cas que moi, la configuration chez le fournisseur de domaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Redirection HTTP vers http;//XXX.XXX.XXX.XXX/sd1/
    Dans les Paramètres DNS avancés, choisir Autre adresse IP et entrer les IP Publiques
    Pour le virtualhost, très classiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <VirtualHost *:80>
        ServerName sd1.domaine.fr
        DocumentRoot /var/www/sd1
    </VirtualHost>
    Au moins, cela a servi à quelque chose, avec toute la lecture de docs que j'ai faite ces derniers jours, j'ai maintenant une bonne connaissance d'Apache, tout du moins de ses VirtualHosts

    Merci encore Marc et je vous souhaites à tous de bonnes fêtes de fin d'année.

    Cordialement,

    Jean-Pierre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. htaccess, rewritecond pour sous domaine
    Par dembroski dans le forum Apache
    Réponses: 0
    Dernier message: 17/04/2015, 14h20
  2. [2.x] Twig template pour sous domain
    Par Flopp dans le forum Symfony
    Réponses: 1
    Dernier message: 13/11/2014, 08h39
  3. Configuration apache2 pour sous-domaines
    Par Yiruko dans le forum Apache
    Réponses: 4
    Dernier message: 29/10/2010, 13h23
  4. Réponses: 1
    Dernier message: 02/03/2009, 12h06
  5. Rewriting pour sous domaine
    Par Tee shot dans le forum Apache
    Réponses: 6
    Dernier message: 31/08/2007, 19h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo