2010-11-03 38 views
7

Tôi đang phát triển một trang web và được quản lý bởi hai trang web. một là tôi và người kia là nhà thiết kế truy cập từ các máy khác nhau trên mạng LAN.truy cập máy chủ ảo cục bộ từ bên ngoài mạng LAN dưới dạng máy chủ ảo thay vì http: // systemname/sitename

Conf: php, apache, windows xp, mysql.

Gốc tài liệu: d: \ www \ xampp \ htdocs. tất cả các dự án đều nằm dưới thư mục con này.

Tôi đã thiết lập máy chủ ảo để tôi sẽ không truy cập tất cả các dự án dưới dạng http://localhost/foldername nhưng chỉ là http://foldername.

Nhưng đối với các nhà thiết kế người nằm trong hệ thống khác, ông có để truy cập như http://computername/foldername

Ví dụ cho tôi được làm việc trong một biên chế dự án. tôi sẽ truy cập vào đó là http://payroll nhưng nhà thiết kế của tôi sẽ truy cập vào đó là http://computername/payroll.

Điều tôi muốn làm là tôi muốn người thiết kế truy cập vào cùng một cách tôi truy cập. đó là http://payroll.

sao cho trong hệ thống thiết kế khi tên máy chủ là bảng lương tôi muốn nó được chuyển hướng đến máy của tôi và sau đó đến thư mục dự án. vì vậy nếu anh ta cho http://payroll thì ứng dụng trong hệ thống của tôi sẽ chạy cho anh ta.

tôi đã thiết lập tệp máy chủ trong hệ thống thiết kế để trỏ tới máy của tôi. do đó, công việc này được thực hiện và khi anh ta cho biên chế, http://localhost của tôi sẽ xuất hiện.

Tôi nên làm gì để nhà thiết kế có thể truy cập dự án của tôi như http://payroll tạo thành hệ thống của mình?

Trả lời

7

Các nhà thiết kế có thêm địa chỉ IP của bạn với nhau sitename để mình hosts file như không có nó trình duyệt của mình sẽ không biết được nơi để tìm kiếm trang web. Nó có thể trông giống như sau:

12.34.56.78 sitename1 
12.34.56.78 sitename2 
12.34.56.78 repeat.for.each.sitename 
... 

Điều này có thể đủ nếu VirtualHost của bạn không bị ràng buộc vào địa chỉ IP cụ thể. Điều này sẽ không làm việc:

NameVirtualHost 127.0.0.1:80 

<VirtualHost 127.0.0.1:80> 
    ServerName sitename1 
    ... 
</VirtualHost> 

Nó nên là:

NameVirtualHost *:80 

<VirtualHost *:80> 
    ServerName sitename1 
    ... 
</VirtualHost> 

Bằng cách này apache sẽ phục vụ các trang web gọi là sitename bất cứ khi nào nó thấy một yêu cầu với hostname sitename và nó sẽ không thành vấn đề nếu nó đến từ cùng một máy tính hay không.

+0

cho tôi nó đang hiển thị truy cập bị cấm nhưng các máy tính khác có thể truy cập. –

+0

tôi đã có tập tin host của tôi như 127.0.0.1 sitename1 mà nói truy cập bị cấm ở đâu như cho những người dùng khác nó làm việc vì họ đã cho ip của tôi trong tập tin host của họ. như vậy nếu tôi chỉ cung cấp cho 192.168.1.20 sitename1 của mình thì nó đang hoạt động. nhưng tất cả các vhost khác nơi hiển thị truy cập bị cấm ... vì vậy nếu ip của tôi thay đổi sau đó tôi nghĩ rằng tôi sẽ thay đổi tập tin host của tôi và thay thế ip với ip mới và tương tự cho những người khác. không có cách nào khác? –

+0

nó hoạt động khi tôi thay thế tất cả 127.0.0.1 với ip của tôi cho tất cả các trường hợp trong tệp conf. và cần thực hiện thêm một số thay đổi để làm cho nó hoạt động như mong đợi. dù sao. cảm ơn bạn. –

1

Ông có thể đưa vào \ windows mình \ system32 \ drivers \ etc \ hosts file:


1.2.3.4 payroll 

đâu 1.2.3.4 nên được thay thế với số IP của hệ thống.

Apache sites-enabled \ tập tin 000-mặc định nên bắt đầu với:


<VirtualHost *:80> 
     # from http://www.iliveinperego.com/2008/05/automatic-vhost-with-apache/ 
     RewriteEngine on 
     RewriteCond %{HTTP_HOST} ^(.+)$ 
     RewriteRule ^(.+)$ /%1$1 
    ... 
</VirtualHost> 
+0

có nó hoạt động nhưng trang web của tôi trong thư mục con của thư mục gốc và tôi muốn thư mục gốc đó chạy và không phải thư mục gốc –

+0

xin lỗi, tôi hiểu lầm bạn nói rằng bạn đã sửa thiết lập Apache cho điều đó. Tôi sẽ sớm cập nhật câu trả lời. –

+0

không ghi đè cho bạn? đó là cách tôi thiết lập hệ thống, vì vậy tôi biết nó có thể hoạt động. –

Các vấn đề liên quan