2011-08-21 12 views
8

Tôi hiện đang cố gắng định cấu hình Máy chủ ảo (Tên miền con) của Máy chủ HTTP Apache để có thể truy cập với máy tính khác trên mạng LAN của tôi. Thiết lập hiện tại của Apache với PHP và MySQL hoạt động cục bộ trên cùng một máy vật lý.Truy cập máy chủ ảo ảo (Miền phụ) với máy tính khác nhau trên mạng LAN

Vì vậy, tôi có hai thiết lập Máy chủ ảo (phát triển và cm) chạy trên cổng không mặc định là 50080. Máy của máy chủ có IP là 10.0.0.10. Từ máy vật lý tương tự, tôi có thể truy cập vào hai Virtual Host sử dụng:

development.localhost:50080 
cms.localhost:50080 

từ một máy vật lý khác nhau, tôi có thể truy cập vào thư mục gốc của máy chủ sử dụng:

10.0.0.10:50080 

Nhưng tôi không thể hay làm không biết cách truy cập Máy chủ ảo từ máy khác. Tôi đã thử một cái gì đó như:

development.10.0.0.10:50080 
cms.10.0.0.10:50080 

Nhưng chúng dường như không hoạt động.

Sau đây là cách tập httpd-vhosts của tôi trông giống như:

NameVirtualHost *:50080 
<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

Tôi đọc một số bài khác ở đây và diễn đàn Apache, nhưng không có trường hợp chính xác cho việc này.

Tôi đã tự hỏi làm cách nào tôi có thể truy cập Máy chủ ảo (Tên miền con) từ một máy khác và giữ cùng một cổng nếu có thể.

Cảm ơn trước

Trả lời

25

Ok, tôi figured it out, sau đây là cấu hình nếu bất cứ ai khác đang tìm kiếm này:

============================================ ======================================

Máy A (A Pache HTTP Server): httpd-vhost:

NameVirtualHost *:50080 

<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
    ServerAlias alias <!-- Added --> 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ServerAlias development.phoenix <!-- Added --> 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

host:

127.0.0.1 development.localhost 

127.0.0.1 alias 
127.0.0.1 development.alias 

================== ================================================== ==============

Máy B (Máy khách): host:

10.0.0.10 alias 
10.0.0.10 development.alias 

Từ máy thứ hai, bạn sẽ có thể truy cập với "bí danh" và "development.alias"

+2

Rất cám ơn vì điều này, là một trợ giúp tuyệt vời! Một vài lưu ý phụ cho bất kỳ ai vẫn gặp rắc rối với điều này: nơi "phoenix" được viết ở trên, tôi đã sử dụng bí danh và nó hoạt động (không chắc chắn tại sao phượng hoàng được sử dụng khi bí danh ở mọi nơi khác ...) Ngoài ra bạn có thể cần để tạo quy tắc cho tường lửa cục bộ trên cổng bạn đang sử dụng trước khi bạn xem trang web của mình qua mạng. Tôi đã phải tạo một ngoại lệ cho cổng 80 (Tôi đã không sử dụng 50080) –

+0

Bạn cũng có thể thêm mod_proxy và sau đó là ProxyPass/dev http: //development.localhost/ và ProxyReversePass/dev http: // development.localhost/và sau đó sử dụng http: // public-ip/dev/ –

+0

Có thể thực hiện việc này mà không cần chỉnh sửa tệp lưu trữ của máy khách không? –

2

Trừ khi tôi là thiếu một cái gì đó, bạn sẽ cần một trong hai thiết lập mục DNS, hoặc thêm các mục vào/etc/hosts của mỗi máy tính truy cập vào máy chủ.

localhost là một mục nhập tồn tại trong tệp/etc/hosts của mọi người theo mặc định, luôn trỏ đến 127.0.0.1. Không thêm mục nhập/etc/hosts, developer.localhost không tồn tại và tiền tố địa chỉ ip với tên miền phụ sẽ không hoạt động.

+0

Tệp máy chủ lưu trữ của tôi trên máy Apache có mục nhập: 127.0.0.1 development.localhost Máy thứ hai chưa có gì, tôi nên thêm gì? – YTKColumba

+0

Điều đó có hiệu quả, vâng. –

0

Đối với Named Virtual Hosts bạn cần sử dụng tên máy chủ hoặc tên miền để kết nối với máy chủ apache của bạn. Nó không hoạt động với ips.

Bạn có thể chèn một mục nhập trong số /etc/hosts trên hệ thống thứ hai của mình.

+0

Tệp máy chủ lưu trữ của tôi trên máy Apache có mục nhập: 127.0.0.1 development.localhost Máy thứ hai chưa có gì, tôi nên thêm gì? Ví dụ: – YTKColumba

+0

' development.server' và sau đó thêm' ServerAlias ​​development.server' vào cấu hình apache của bạn. –

3

Tôi đề nghị làm cho sự thay đổi sau (thêm những dòng ServerAlias):

NameVirtualHost *:50080 
<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
    ServerAlias cms.myserver.com 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ServerAlias development.myserver.com 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

Khởi động lại Apache để đảm bảo những thay đổi có hiệu lực.

Sau đó, trên máy tính thứ hai của bạn, bạn cần phải thêm mục nhập dns tùy chỉnh cho các tên miền mới này. Nếu đó là Windows, hãy chỉnh sửa tệp c:\windows\system32\drivers\etc\hosts. Nếu đó là Linux, hãy chỉnh sửa/etc/hosts.Dù bằng cách nào add:

10.0.0.10 development.myserver.com 
10.0.0.10 cms.myserver.com 

Bây giờ trên máy tính thứ hai của bạn, bạn sẽ có thể truy cập vào các URL sau:

http://development.myserver.com:50080 
http://cms.myserver.com:50080 
+0

Tôi dường như đang gặp lỗi khi cố gắng khởi động Apache bằng cấu hình bạn đã cung cấp ... – YTKColumba

+0

Tôi gặp lỗi khi đang cố khởi động Apache, do đó có vẻ như cấu hình với tệp httpd-vhosts. BTW, mục nhập đầu tiên trỏ đến thư mục gốc của thư mục, tôi không thêm mục nhập "cms" vì tôi thấy nó giống với mục nhập "phát triển" – YTKColumba

+0

Lỗi apache trong nhật ký là gì? –

0

Sử dụng SSH + hầm Putty, và do đó có một 127,0. 0.1 trên máy chủ của tôi, tôi cố gắng truy cập vào tên miền phụ của tôi bằng cách thực hiện những điều sau đây đứng về phía máy chủ của tôi:

# nano /etc/hosts 

127.0.0.1 localhost.localdomain localhost 
127.0.0.1 sub1.domain.com sub2.domain.com sub3.domain.com sub4.domain.com 

tôi không thay đổi file host của máy tính từ xa, và nó hoạt động như một nét duyên dáng