web-dev-qa-db-fra.com

Comment configurer un hôte virtuel sur Apache?

J'essaie de créer un hôte virtuel sur Apache dans Ubuntu (dans une machine virtuelle), mais je ne parviens pas à l'obtenir. J'ai fait beaucoup de configurations mais aucune d'entre elles ne m'a donné de résultat, alors j'ai créé une nouvelle machine virtuelle pour le faire depuis le début. Je vais mettre ici tout le processus étape par étape pour que vous puissiez tous suivre ce que je fais mal.

Ce que j'ai

  • VirtualBox
  • Ubuntu 14.04 (Machine virtuelle sur VirtualBox)
  • J'ai installé Apache sur Ubuntu (Sudo apt-get install Apache2)

Ce dont j'ai besoin

  • Lorsque j'écris l'URL ejemplo.es sur mon navigateur, le fichier que j'ai créé sur mon dossier VirtualHost sera affiché et non la page qu'il se trouve sur www.ejemplo.es (qu'il ne m'appartient pas).

  • Utilisez le fichier hosts du dossier /etc au lieu de la configuration DNS.

Ce que j'ai essayé

  • Tout d'abord: changez le répertoire racine de mon serveur

Tout d'abord, ce dont j'ai besoin, c'est de créer le répertoire racine de mon serveur sous le nom /var/www/extras. J'ai donc créé ce nouveau répertoire sur /var/www.

Sudo mkdir /var/www/extras

et créez un index.html avec du texte.

Après avoir créé le nouveau répertoire, je dois changer mon fichier 000-default.conf pour changer la directive DocumentRoot.

Sudo gedit /etc/Apache2/sites-available/000-default.conf

et changez la directive DocumentRoot comme suit:

DocumentRoot /var/www/extras

et ensuite je redémarre Apache pour enregistrer mes modifications:

Sudo /etc/init.d/Apache2 restart

et modifiez le bloc Directory sur le fichier Apache2.conf

Sudo gedit /etc/Apache2/Apache2.conf

de <Directory /var/www/html> à <Directory /var/www/extras> et redémarrez Apache à nouveau.

  • Deuxième étape: création du dossier et du fichier à partir de l'hôte virtuel que je veux créer

Dans le répertoire /var/www/extras, je vais créer un nouveau dossier (ejemplo.es) qui sera le dossier de mon hôte virtuel.

Sudo mkdir /var/www/extras/ejemplo.es

et à l'intérieur de celui-ci un fichier index.html que j'ai créé pour le répertoire racine de mon serveur avec le texte "This is an example".

Après cela, si je vais dans le navigateur et écris localhost/ejemplo.es je peux voir le contenu du fichier que j'ai créé à l'étape précédente. Mais ce que je veux c'est accéder au même contenu mais en tapant ejemplo.es au lieu de localhost/ejemplo.es.

  • Dernière étape: configurer l'hôte virtuel

Je dois créer un nouveau fichier sur /etc/Apache2/sites-available avec la configuration de mon hôte virtuel.

Sudo gedit /etc/Apache2/sites-available/ejemplo.es.conf

avec la configuration suivante:

<VirtualHost 10.0.2.15:80>
    ServerAdmin [email protected]
    ServerName ejemplo.es
    ServerAlias www.ejemplo.es
    DocumentRoot /var/www/extras/ejemplo.es
</VirtualHost>

et sur le fichier Apache2.conf, je vais remplacer IncludeOptional sites-enabled/*.conf par Include sites-enabled/*.conf. (Cela prouve que ma Apache n'incluait peut-être pas ce dossier et que mon VirtualHost ne fonctionnait pas pour cela).

Alors maintenant, je dois activer le VirtualHost que j'ai créé:

Sudo a2ensite ejemplo.es

et redémarrez Apache pour enregistrer les modifications apportées:

Sudo /etc/init.d/Apache2 restart

Si je liste le contenu du dossier /etc/Apache2/sites-enabled, je peux voir que mon VirtualHost il est actif maintenant (ls commande de ce dossier).

Pour terminer, j’ajoute une nouvelle ligne sur mon fichier hosts (Sudo gedit /etc/hosts):

10.0.2.15   ejemplo.es

alors maintenant, le fichier a trois lignes avec les adresses IP:

127.0.0.1    localhost
127.0.1.1    user
10.0.2.15    ejemplo.es

et quelques lignes ci-dessous qui commencent par ff00... mais je pense qu'elles ne sont pas pertinentes pour mon propos.

Et enfin, je dois exécuter la commande suivante pour sauvegarder mes dernières modifications:

Sudo /etc/init.d/networking restart

mais j'obtiens la page par défaut de www.ejemplo.es à la place du fichier que j'ai mis dans mon dossier VirtualHost.

Je suis sûr que je fais quelque chose de mal, mais je ne peux pas savoir où. C'est la première fois que je crée un VirtualHost et tous les tutoriels que j'ai vus comportaient ces étapes. Je pense donc qu'il me manque quelque chose.

Je m'attends à ce que vous puissiez suivre mes étapes et demander si vous avez des doutes sur la configuration que j'ai faite.

Merci d'avance!

1
Error404

Je voulais commenter la question pour plus d’informations, mais je n’avais pas assez de points de réputation, alors j’essaie simplement de répondre à cette question pour que vous nous donniez un peu plus d’informations.

J'ai suivi les mêmes étapes que celles mentionnées ci-dessus dans ma nouvelle machine virtuelle et tout fonctionne correctement.

Je ne sais pas exactement comment vous testez le domaine ci-dessus, que ce soit un navigateur dans votre ordinateur (Ubuntu - client) ou dans votre hôte (qui exécute virtualbox).

Si vous essayez de visiter le domaine sous client-ubuntu, vous pouvez ajouter plus d’IP dans la balise virtualhost:

<VirtualHost ejemplo.es:80 127.0.1.100:80 192.168.1.100:80></VirtualHost>.

Ici, 127.0.1.100 et 192.168.1.100 sont des exemples d'adresses IP qui pointent toutes vers ejemplo.es.

Si vous essayez d'accéder à partir de votre hôte avec IP 10.0.x.x, il est possible qu'il ne soit pas accessible. Surtout si vous n'avez pas sélectionné le type de réseau adapté à votre VM. Vous pouvez d'abord envoyer une requête ping à l'IP avant de vérifier le travail du domaine local. Dans mon cas, je sélectionne la connexion de pont (avec le NAT copié), de sorte que ma VM puisse agir comme tout autre périphérique physique de mon réseau.

Autre chose, si votre site est déjà en service et que vous souhaitez un environnement local pour le développement et les tests, il est préférable d’utiliser un domaine différent (tel que: .local, .dev) au lieu d’utiliser le même domaine.

1
Brian Ng