web-dev-qa-db-fra.com

Comment obliger Apache à servir un site via VirtualBox?

Ce tutoriel m'a appris à créer un serveur Ubuntu (12.10, 64 bits) VM dans VirtualBox sous Windows 7 Ordinateur hôte, installez Apache et laissez-le servir un site à partir d'un domaine factice accessible via le navigateur de l'ordinateur hôte.

Cela a pris une journée et de nombreuses tentatives (bien que, apparemment, je suivais les instructions telles qu'elles étaient présentées, je faisais toujours quelque chose de mal) et je l'avais finalement fait.

Je trouve Ubuntu comme un environnement de développement beaucoup plus transparent que Windows et je voulais donc que cela soit la même chose sur Ubuntu. Donc, cette fois, j'ai créé un serveur Ubuntu VM dans VirtualBox sur une machine hôte Ubuntu , a installé Apache et l'a configuré. Mais lorsque j'accède au site via le domaine factice, j'obtiens l'erreur ' Serveur introuvable '.

Oui, j'ai modifié le fichier /etc/hosts comme indiqué dans le le didacticiel (qui concerne Windows 7). Mais je ne pouvais pas le faire fonctionner. Je ne sais pas ce qui ne va pas. Quelqu'un sait ce que je devrais faire d'autre?

EDIT: Si je ne suis pas assez clair, demandez s'il vous plaît. Je suis disposé à clarifier.

8
its_me

Si vous devez autoriser d'autres machines de votre réseau physique à atteindre votre VM ou si la VM a besoin d'un accès à Internet, utilisez un réseau ponté. Sinon, restez sur le réseau uniquement hôte.

  1. Arrêtez votre VM et ouvrez les paramètres correspondants dans le VirtualBox (OSE) Manager

  2. Allez dans l'onglet Résea

  3. Sélectionnez le mode réseau de votre choix (réseau ponté ou hôte uniquement)

    Si vous souhaitez utiliser un réseau ponté, vous devez sélectionner la carte réseau appropriée en Nom: ____________ . Pour les connexions filaires, vous devez sélectionner un nom nommé eth0. Les connexions sans fil sont généralement nommées wlan0 (les nombres peuvent varier).

  4. Enregistrer les paramètres

  5. Démarrer la machine virtuelle Ubuntu

  6. Lorsque vous êtes opérationnel, vous pouvez collecter l'adresse IP en exécutant:

    Sudo ifconfig
    

    La sortie devrait ressembler à ceci:

    eth0      Link encap:Ethernet  HWaddr 08:00:27:f4:c3:7b  
              inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::a00:27ff:fef4:c37b/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:20 errors:0 dropped:0 overruns:0 frame:0
              TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:3244 (3.2 KB)  TX bytes:2512 (2.5 KB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    

    Dans la sortie ci-dessus, 192.168.1.4 (sur la deuxième ligne) est l'adresse IP qui peut être utilisée dans votre système hôte Ubuntu pour accéder à votre machine virtuelle.

  7. Ouvrez maintenant le fichier hôtes sur la machine hôte Ubuntu:

    Sudo gedit /etc/hosts
    

    (Si vous ne souhaitez pas utiliser geditname__, remplacez le mot par le nom de votre éditeur favori. Exemple: vimname__, nanoname__.)

    Une fois le fichier ouvert, ajoutez cette ligne et enregistrez :

    192.168.1.4   my-dummy-site.com
    
  8. Ouvrez n’importe quel navigateur sur votre ordinateur hôte et accédez à my-dummy-site.com pour accéder à votre site Web, directement depuis VirtualBox.

(Un merci spécial à @ iSeth pour l'aide . Entièrement basé sur cette réponse , le bit n'est PAS le même.)

5
its_me

Seul rootpeut ouvrir les ports <1024. Par conséquent, si un utilisateur normal exécute VirtualBox, il n'ouvrira pas le port 80 sur l'hôte et ne le transférera pas à l'invité.

Vous pouvez autoriser des programmes à ouvrir des ports privilégiés en exécutant:

setcap 'cap_net_bind_service=+ep' /path/to/executable

Je ne connais pas le chemin d'accès à l'exécutable VirtualBoxname__, mais vous pouvez facilement le trouver en recherchant quelque chose de similaire à "VirtualBox" dans la sortie de ps auxf.

0
Eric Carvalho