Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de virtualhost

    13 octobre 2016 à 15:04:10

    Bonjour,

    Je post ce sujet car j'ai un problème de configuration de virtualhost. J'en suis a la partie serveur web du cours openclassrooms sur les réseau TCP/IP.

    Ma configuration : J'utilise une machine virtuelle Debian (celle fournie par Mr Lalitte dans le cours). La machine virtuelle tourne sur mon pc Windows 10. La machine virtuelle Debian a l'adresse IP 192.168.1.19 et mon pc Windows a le 192.168.1.18. Les 2 ont pour passerelle ma box 192.168.1.1. Les 2 se "ping" et peuvent "ping" internet sans soucis.

    J'ai installé apache2 sur la machine virtuelle et quand je tente d'accéder a 192.168.1.19 dans mon navigateur Windows 10 je tombe bien sur la page html par défaut de apache2.

    Je suis ensuite arrivé à la partie du cours sur les virtualhost afin de pouvoir avoir 2 noms de domaine hébergés sur le même serveur apache2 de ma virtualbox. J'ai donc créé www.tutu.com et www.toto.com (exactement comme dans le cours) mais lorsque je tape l'un ou l'autre dans mon navigateur , je continue de tomber sur la page par défaut de apache2.

    Je vais décrire toutes les étapes que j'ai suivi pour configurer mes virtualhost (c'est à la lettre les étapes du cours mais bon je suis peut être passé a coté de quelques chose) :

    • J'ai commencé par court-circuiter le fonctionnement de mon DNS en éditant le fichier host de mon Windows 10 et de Debian en éditant le fichier host ou j'ai inscrit 192.168.1.19 www.toto.com et 192.168.1.19 www.tutu.com (je l'ai fait aussi sur Debian même si dans mon cas je pense que cela ne change rien)
    • J'ai ensuite copié le fichier "/etc/apache2/sites-available/000-default.conf" 2 fois et j'ai renommé les copies www.toto.com et www.tutu.com

    Je les ai édité pour changer la directive ServerName (respectivement www.toto.com et www.tutu.com) le DocumentRoot et la balise directory pour y indiquer l'emplacement de mes pages index.html des nouveaux sites (ex: /var/www/toto.com/)

    • J'ai activé ces virtualhost en créant des liens dans le dossier /sites-enabled/ via la commande "ln -s ../sites-available/www.toto.com ." et "ln -s ../sites-available/www.tutu.com ."
    • J'ai créé 2 dossiers toto.com et tutu.com dans le répertoire /var/www/ dans lesquels j'ai mis un fichier index.html avec un contenu différent pour chaque site (et différent de la page par défaut de apache2)
    • Enfin j'ai redémarré mon serveur apache2.

    C'est donc à la lettre le cours sur les virtualhost mais malgré tout, lorsque je tape www.toto.com ou www.tutu.com, je tombe systématiquement sur la page par défaut de apache2.

    Aurais-je loupé une étape ?

    J'ai fait quelques tests car j'avais quelques piste de recherche mais elles n'ont rien donné.

    Notamment j'ai remarqué que dans le fichier de configuration général /etc/apache2/apache2.conf, il y avait une ligne tout a la fin "includeOptionnal sites-enabled/*.conf".

    Je me suis donc dit que le serveur apache ne devait prendre en compte que les virtualhost dont le fichier de configuration finissait en .conf . J'ai donc essayé de renommer mes fichiers www.toto.com en www.toto.conf en changeant les paramètre associé des différents fichiers mais ça n'a rien donné.

    Je doit avouer que je ne sais plus trop ou chercher donc si quelqu'un a des conseils, je suis preneur.

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      14 octobre 2016 à 9:40:33

      Salut

      Pour activer les virtual hosts on utilise la commande "a2ensite" et "a2dissite" (pour désactiver), car c'est plus simple.

      Peux-tu nous fournir le contenu de l'un des virtual hosts ?

      • Partager sur Facebook
      • Partager sur Twitter
      System test engineer
        14 octobre 2016 à 10:51:40

        Dans ce cas, on dit toujours "que disent les logs ?" ;-)

        Sinon, bravo pour la présentation de ton problème qui montre que tu as compris beaucoup de choses !

        Avec Doezer et moi on devrait y arriver ;-)

        • Partager sur Facebook
        • Partager sur Twitter
          17 octobre 2016 à 15:45:21

          Bonjour,

          Tout d'abord merci pour vos réponses je vais tacher d'être clair (et c'est pas simple :D)

          On commence par un petit screen de mon fichier de config de l'une de mes virtualhosts :

          (ya une suite, l'image est tronquée car je ne peux pas prendre de screenshot de la totalité, ça ne rentre pas dans mon écran, cela dit la suite est juste la copie du fichier 000-default.conf

          Tout d'abord pour répondre à Doezer, a la lecture du cours, il m'avait semblé que faire l'activation de mes virtualhosts via la commande a2ensite ou via la création de lien manuelle revenait au même. Suite à votre post j'ai essayé de supprimer les liens que j'avais créé avec ma "ln ..." et de le faire via la commande a2ensite. Dans un premier temps cela n'a pas marché, la commande me renvoyant une erreur disant "ERROR site www.toto.com does not exist"

          En fouillant un peu je me suis demandé si la commande ne pouvait pas être activé uniquement sur des fichiers finissant avec l'extension .conf.

          J'ai alors renommé mes fichiers www.toto.com en www.toto.conf (idem pour www.tutu.com)

          J'ai ensuite retenté la commande a2ensite.

          On voit que la commande fonctionne mais bizarement il m'active le site www.toto. Sans le com ni le conf a la fin

          Lorsque je vais dans le dossier site-enabled, j'ai bien un lien www.toto.conf qui a été créé donc a priori tout fonctionne mais la commande a2ensite me dit qu'il faut que je redémarre apache2 via la commande "service apache2 reload" pour que cela fonctionne et quand je le fait c'est le drame le server ne redémarre pas et se met en échec.

          Il me propose de voir le détail du pourquoi il n'a pas redémarré avec la commande "systemctl status apache2.service -l"

          Et cela me donne ceci :

          Je doit avouer que je suis un peu perdu là, j'ai globalement compris le fonctionnement des virtualhosts mais là ya un truc que je ne comprends pas.

          Si vous avez une idée ou si vous avez besoin d'autres screenshots pour diagnostiquer le problème, n'hésitez pas.

          Merci d'avance.

          -
          Edité par RémiPalazy 17 octobre 2016 à 17:11:31

          • Partager sur Facebook
          • Partager sur Twitter
            17 octobre 2016 à 16:46:10

            Il suffit de lire le log :

            "Cannot access directory /var/log/apache2/error..." Le dossier que tu as spécifié pour les logs n'existe pas, donc la configuration ne se charge pas.

            "Sans le com ni le conf a la fin"

            Normal car tu as enlevé le com toi-même ^^ Et le conf c'est juste que le programme l'ignore, tu n'as pas besoin de le mettre.

            • Partager sur Facebook
            • Partager sur Twitter
            System test engineer
              17 octobre 2016 à 16:56:51

              Concernant ce probleme de chemin vers les log je vais me pencher sur la question.

              Sinon pour le nom du fichier, il faudrait donc que je nomme mon fichier www.toto.com.conf ? D'après mes test, il faut impérativement mettre le .conf en fin de nom de fichier, sinon la commande a2ensite me renvoie une erreur comme je l'ai dit dans mon précédant post.

              EDIT : j'ai reconfiguré le chemin d'acces au log d'erreur, j'avais effectivement fait une faute de frappe dans mon fichier www.toto.conf. Ceci étant, le serveur ne redemarre toujours pas et lorsque je consulte le fichier log /var/log/apache2/error.log.1 il y a marqué tout a la fin :

              "Could not reliably determine the server' fully qualified domain name using 2a01:cb14:a55:a300:a00:27ff:fe55:70f1. Set the "ServerName" directive globally to supress this message".

              Que signifie ce "set the ServerName Globally" ?

              -
              Edité par RémiPalazy 17 octobre 2016 à 17:26:28

              • Partager sur Facebook
              • Partager sur Twitter
                18 octobre 2016 à 8:26:28

                C'est juste un warning qui dit que ton serveur n'a pas de nom par défaut.

                Tu peux ajouter dans apache2.conf une ligne

                ServerName 127.0.0.1

                Et cela devrait enlever cette erreur.

                Quand tu redémarres apache, as-tu des erreurs ? et que donne systemctl status apache2.service -l ?

                • Partager sur Facebook
                • Partager sur Twitter
                  18 octobre 2016 à 10:48:10

                  Bonjour Mr Lalitte,

                  L'ajout de la directive ServerName 127.0.0.1 dans le fichier apache2.conf a fonctionné à merveille. Mon serveur apache2 a redémarré sans soucis et bonne nouvelle, mon virtualhost www.toto.com est accessible via mon navigateur Windows 10 !

                  Petite question à ce propos, cette directive lui donne un nom par défaut qui est une adresse locale mais en cas d'hébergement de vrai site accessible depuis le net, que doit-on mettre comme nom par défaut ?

                  Sinon pour en revenir a mon ex-problème, quand je tape l'adresse IP de ma machine virtuelle (192.168.1.19) dans mon navigateur j'accède désormais à la page par défaut de apache2 et lorsque je tape www.toto.com, je tombe bien sur l'index.html de toto.

                  Il me reste un dernier soucis mais la je devrais pouvoir m'en sortir (enfin j'espère) c'est qu'en ayant fait exactement la même démarche, je n'arrive pas a accéder a www.tutu.com (je tombe sur la page apache2 par défaut) et pourtant j'ai copié les fichier du virtualhost toto et j'ai modifié les fichiers de configurations (pour être sur ne de pas encore faire une faute de frappe quelque part)

                  EDIT : C'est bon probleme résolu pour tutu.com, j'ai supprimé tous les fichiers et les ai tous recréé, j'ai redémarré apache2 et forcé le refresh de la page web. Merci beaucoup pour votre aide. Ma question au dessus reste d'actualité :D

                  -
                  Edité par RémiPalazy 18 octobre 2016 à 11:02:33

                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 octobre 2016 à 11:08:58

                    Tu peux mettre ce que tu veux par défaut, notamment le nom du serveur par défaut si tu en as un, mais sinon 127.0.0.1 peut tout à fait fonctionner.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Probleme de virtualhost

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown