VirtualBox를 통해 아파치를 사이트에 제공하는 방법은 무엇입니까?


8

이 튜토리얼 에서는 Windows 7 호스트 시스템의 VirtualBox에서 Ubuntu 서버 (12.10, 64 비트) VM을 생성하고 Apache를 설치하고 호스트 시스템의 브라우저를 통해 액세스 할 수있는 더미 도메인의 사이트를 제공하는 방법을 알려줍니다.

하루도 걸리고 많은 시도가 있었지만 (내가 지시대로 지시를 따르고있는 것처럼 보였지만, 항상 잘못된 일을하고 있었지만) 마침내 끝냈습니다.

우분투는 Windows보다 훨씬 완벽한 개발 환경으로 우분투에서 똑같은 것을 원했습니다. 그래서 이번에는 Ubuntu 호스트 컴퓨터의 VirtualBox에서 Ubuntu 서버 VM을 만들고 Apache를 설치하고 구성했습니다. 그러나 더미 도메인을 통해 사이트에 액세스하면 ' 서버를 찾을 수 없습니다 '라는 오류가 발생합니다.

예, 튜토리얼 (Windows 7 용) /etc/hosts에서 언급 한대로 파일을 수정했습니다 . 그러나 나는 그것을 작동시키지 못했습니다. 무엇이 잘못되었는지 모르겠다. 내가 뭘해야하는지 아는 사람 있나요?

편집 : 내가 명확하지 않은 경우 문의하십시오. 기꺼이 설명하겠습니다.


컴퓨터 (예 : 개발) 또는 네트워크의 다른 서버에서 서버를 사용 하시겠습니까?
Davisein

서버가 가상 컴퓨터 (virtualbox 사용)에 설치되어 있으며 호스트 컴퓨터의 브라우저에서 서버가 제공하는 테스트 웹 사이트에 액세스하고 싶습니다. 분명하길 바랍니다. 나는 답변을 게시했지만 2 일 후에 답변으로 표시 할 수 있습니다.
its_me

1
물론, 나는 이미 당신의 대답을 크게 올렸습니다 (btw). 방금 호스트 전용 및 브리지 (인터넷 액세스 용)를 모두 추가하는 것이 좋습니다. 또한 외부에서 VM에 액세스하려는 경우 브리지 된 환경에서 다른 대답이 필요합니다. 다른 사람들에게 질문을 완전히 명확하게하기 위해;)
Davisein

답변:


5

실제 네트워크의 다른 시스템이 VM에 도달하도록하거나 VM에 인터넷 액세스가 필요한 경우 브리지 된 네트워킹을 사용하십시오. 그렇지 않으면 호스트 전용 네트워킹을 고수하십시오.

  1. VM을 중지하고 VirtualBox (OSE) 관리자 에서 VM 설정을 엽니 다.

  2. 네트워크 탭으로 이동

  3. 원하는 네트워크 모드를 선택하십시오 (브릿지 네트워킹 또는 호스트 전용)

    브리지 된 네트워킹을 사용하려면 이름 : ____________ 에서 올바른 네트워크 어댑터를 선택해야합니다 . 유선 연결의 경우와 같은 이름을 선택합니다 eth0. 무선 연결은 일반적으로 이름이 지정됩니다 wlan0(번호는 다를 수 있음).

  4. 설정 저장

  5. 우분투 VM 시작

  6. 설치되면 다음을 실행하여 IP 주소를 수집 할 수 있습니다.

    sudo ifconfig
    

    출력은 다음과 유사해야합니다.

    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)
    

    위 출력에서 192.168.1.4(두 번째 줄)은 Ubuntu 호스트 시스템에서 VM에 액세스하는 데 사용할 수있는 IP 주소입니다.

  7. 이제 Ubuntu 호스트 시스템에서 hosts 파일을여십시오 :

    sudo gedit /etc/hosts
    

    (을 사용하지 않으려면 gedit단어를 즐겨 사용하는 편집기 이름으로 바꾸십시오 (예 :) vim) nano.

    파일이 열리면이 줄을 추가하고 저장 하십시오.

    192.168.1.4   my-dummy-site.com
    
  8. 호스트 컴퓨터에서 브라우저를 열고 my-dummy-site.comVirtualBox에서 바로 제공되는 웹 사이트 로 이동 하십시오.

(특별 감사 @iSeth 에 대한 도움 . 전적으로 기반으로 이 대답은 , 비트는 동일하지 않습니다.)


1
이 솔루션은 작동합니다. 이 구성으로 개발 서버를 지금 시도하고 있습니다. 또한 브리지 및 호스트 전용을 동시에 사용할 수 있습니다. Bridged는 호스팅 머신이 (내가 아는 한) 자신의 서버에 도달하는 것을 허용하지 않습니다. 그리고 호스트 전용은 인터넷 액세스를 허용하지 않으므로 업데이트가 없습니다. 나는 보통 둘 다를 사용한다
Davisein

1
@Davisein Wrong. 브리지 된 네트워크 모드를 사용하면 호스트 컴퓨터에서 가상 컴퓨터에 액세스 할 수있을뿐만 아니라 호스트에서 사용하는 인터넷 연결에 VM에 액세스 할 수도 있습니다. :)
its_me

진실. 이전 의견을 삭제하지 않아 이상하게 보이지 않지만 잘못되었습니다. virtualbox.org/manual/ch06.html에서 말한 것처럼 호스팅 및 게스트 컴퓨터와 통신 할 수없는 시스템은 NAT 입니다.
Davisein

IPTables가 연결을 차단하지 않는지 확인하십시오 ...
Ethereal

이 지침을 T에 따랐습니다. Ubuntu VM에서 브라우저를 열면 dns를 확인하고 my-dummy-site.com을 제공 할 수 있습니다. 그러나 Ubuntu VM 외부에서 브라우저를 열면 (내 VM이 설치된 Windows 10 컴퓨터에서) my-dummy-site.com을 해결할 수 없습니다. 그래도 IP 192.168.1.118을 해결할 수 있습니다! 무엇이 문제 일 수 있습니까?
Chris Nielsen

0

root포트 <1024 만 열 수 있으므로 일반 사용자가 VirtualBox를 실행중인 경우 호스트에서 포트 80을 열고 게스트로 전달하지 않습니다.

다음을 실행하여 프로그램이 권한있는 포트를 열도록 허용 할 수 있습니다.

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

VirtualBox실행 파일 의 경로를 모르지만의 출력에서 ​​"VirtualBox"와 비슷한 것을 검색하여 쉽게 알아낼 수 있습니다 ps auxf.


시험 해보고 알려 드리겠습니다. 한편, "루트 만 포트 <1024를 열 수 있습니다" 라고 말 했지만 여전히 작동시킬 수있었습니다 (아래의 솔루션을 참조하십시오).
its_me

@its_me 솔루션에서 브리지 네트워킹을 사용하기 때문입니다.
Eric Carvalho

아 알았어 설명 Eric에 감사드립니다. :)
its_me
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.