Làm cách nào để có được apache để phục vụ một trang web qua VirtualBox?


8

Hướng dẫn này đã dạy tôi cách tạo một máy chủ Ubuntu (12.10, 64 bit) trong VirtualBox trên máy chủ Windows 7 , cài đặt Apache và để nó phục vụ một trang web từ một miền giả có thể truy cập thông qua trình duyệt của máy chủ.

Phải mất một ngày và nhiều nỗ lực (mặc dù có vẻ như tôi đã làm theo hướng dẫn khi chúng được đặt ra, tôi luôn làm sai điều gì đó) và cuối cùng tôi đã làm được.

Tôi thấy Ubuntu là một môi trường phát triển liền mạch hơn nhiều so với Windows, và vì vậy tôi muốn điều tương tự trên Ubuntu. Vì vậy, lần này, tôi đã tạo một máy chủ Ubuntu Server trong VirtualBox trên máy chủ Ubuntu , cài đặt Apache và định cấu hình nó. Nhưng khi tôi truy cập trang web thông qua tên miền giả, tôi gặp lỗi ' Máy chủ không tìm thấy '.

Có, tôi đã sửa đổi /etc/hoststệp như được đề cập trong hướng dẫn (dành cho Windows 7). Nhưng tôi không thể làm cho nó hoạt động. Không biết có chuyện gì. Bất cứ ai biết những gì tôi nên làm?

EDIT: Nếu tôi không đủ rõ ràng, xin vui lòng hỏi. Tôi sẵn sàng làm rõ.


Bạn có muốn sử dụng máy chủ từ máy tính của mình (ví dụ để phát triển) hoặc từ những người khác trong mạng không?
Davisein

Máy chủ được cài đặt trong một máy ảo (sử dụng hộp ảo) và tôi muốn truy cập trang web thử nghiệm được cung cấp bởi máy chủ từ trình duyệt trên máy chủ. Hy vọng điều đó rõ ràng. Tôi đã đăng câu trả lời bằng cách này (nhưng chỉ có thể đánh dấu câu trả lời sau 2 ngày).
it_me

1
Chắc chắn, tôi đã nâng cao câu trả lời của bạn rất tốt (btw). Tôi chỉ muốn khuyên bạn nên thêm cả máy chủ và cầu nối (để truy cập internet). Và câu trả lời khác là một yêu cầu trong môi trường bắc cầu nếu bạn muốn truy cập VM từ bên ngoài. Để làm cho câu hỏi hoàn toàn rõ ràng cho người khác;)
Davisein

Câu trả lời:


5

Nếu bạn cần cho phép các máy khác trong mạng vật lý của bạn tiếp cận VM hoặc nếu VM cần truy cập Internet, hãy sử dụng kết nối mạng. Nếu không, dính vào mạng chỉ lưu trữ.

  1. Dừng VM của bạn và mở cài đặt cho nó trong Trình quản lý VirtualBox (OSE)

  2. Chuyển đến tab Mạng

  3. Chọn chế độ mạng theo lựa chọn của bạn (chỉ kết nối mạng hoặc chỉ lưu trữ)

    Nếu bạn muốn sử dụng kết nối mạng, bạn phải chọn bộ điều hợp mạng phù hợp tại Tên: ____________ . Đối với các kết nối có dây, bạn sẽ chọn một cái gì đó có tên như eth0. Kết nối không dây thường được đặt tên wlan0(số lượng có thể thay đổi).

  4. Lưu các cài đặt

  5. Khởi động máy ảo Ubuntu

  6. Khi lên, bạn có thể thu thập địa chỉ IP bằng cách chạy:

    sudo ifconfig
    

    Đầu ra sẽ trông giống như thế này:

    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)
    

    Trong đầu ra trên, 192.168.1.4(trên dòng thứ hai) là địa chỉ IP có thể được sử dụng trong hệ thống máy chủ Ubuntu của bạn để truy cập VM của bạn.

  7. Bây giờ hãy mở tệp máy chủ trong máy chủ Ubuntu:

    sudo gedit /etc/hosts
    

    (Nếu bạn không muốn sử dụng gedit, thay thế từ với tên của soạn thảo yêu thích của bạn. Ví dụ vim, nano.)

    Khi tệp được mở, hãy thêm dòng này và lưu nó:

    192.168.1.4   my-dummy-site.com
    
  8. Mở bất kỳ trình duyệt nào trên máy chủ của bạn và my-dummy-site.comtruy cập vào trang web của bạn, được phục vụ ngay từ VirtualBox.

(Đặc biệt cảm ơn @iSethsự giúp đỡ . Hoàn toàn dựa trên câu trả lời này , bit KHÔNG giống nhau.)


1
Giải pháp này nên hoạt động. Tôi đang thử một máy chủ phát triển với cấu hình này ngay bây giờ. Ngoài ra, cả cầu nối và máy chủ chỉ có thể được sử dụng cùng một lúc. Cầu nối không cho phép máy chủ lưu trữ đến máy chủ của riêng bạn (theo như tôi biết). Và máy chủ chỉ không cho phép truy cập internet (vì vậy không có cập nhật). Tôi thường sử dụng cả hai
Davisein

1
@Davisein Sai. Chế độ mạng được kết nối cho phép các máy ảo của bạn được truy cập từ máy chủ, đồng thời cho phép nó (VM) truy cập vào kết nối Internet được sử dụng bởi máy chủ. :)
it_me

Thật. Tôi không xóa bình luận trước đó của tôi để bạn không thấy lạ nhưng nó sai. Hệ thống không cho phép máy chủ lưu trữ và máy khách nói chuyện là NAT như đã nói ở đây virtualbox.org/manual/ch06.html .
Davisein

Đảm bảo IPTables không chặn kết nối ...
Ethereal

Tôi đã làm theo các hướng dẫn này cho T. Nếu tôi mở trình duyệt trên Ubuntu VM, nó có thể giải quyết các dns và phục vụ my-dummy-site.com. Tuy nhiên, nếu tôi mở trình duyệt bên ngoài máy ảo Ubuntu (trên máy Windows 10 nơi tôi đã cài đặt máy ảo), nó không thể giải quyết my-dummy-site.com. Nó có thể phân giải IP 192.168.1.118! Điều gì có thể là vấn đề?
Chris Nielsen

0

Chỉ rootcó thể mở các cổng <1024, vì vậy nếu một người dùng thông thường đang chạy VirtualBox thì nó sẽ không mở cổng 80 trên Máy chủ và chuyển tiếp tới Khách.

Bạn có thể cho phép các chương trình mở các cổng đặc quyền bằng cách chạy:

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

Tôi không biết đường dẫn đến VirtualBoxtệp thực thi, nhưng bạn có thể dễ dàng tìm ra nó để tìm kiếm thứ gì đó tương tự như "VirtualBox" trong đầu ra của ps auxf.


Tôi sẽ thử nó và cho bạn biết. Trong khi đó, bạn nói rằng "Chỉ root mới có thể mở cổng <1024" , nhưng tôi vẫn có thể làm cho nó hoạt động (vui lòng xem giải pháp của tôi bên dưới).
it_me

@its_me đó là vì giải pháp của bạn sử dụng mạng cầu nối.
Eric Carvalho

À được rồi. Cảm ơn đã làm rõ Eric. :)
it_me
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.