2012-02-29 23 views
12

Tôi quan tâm đến, nếu tôi có thể có vhosts trên apache với tên miền như: http://something.com/something hoặc http: // {server-ip -address-here}/cái gì đó?host ảo trên apache với URL như các thư mục con

Tôi đang sử dụng Apache 2.2.20 trên Ubuntu Server, máy chủ gia đình của tôi và tôi đang thử nghiệm một số thứ ở đây, tôi không có bất kỳ máy chủ DNS nào ở đây và những gì tôi có chỉ là địa chỉ IP công cộng và tên miền được đính kèm từ dịch vụ mở dns.

Vì vậy, tôi đã làm gì:

  1. Tôi đã tạo tệp mới "demo" trong /etc/apache2/sites-available
  2. tôi đặt ở đó này (trên thực tế nó được sao chép với sửa đổi từ tập tin mặc định):

    <VirtualHost *:80> 
        ServerAdmin [email protected] 
        ServerName {mydomain-here}/demo/ 
        DocumentRoot /vhosts/demo 
    <Directory /> 
         Options FollowSymLinks 
         AllowOverride None 
    </Directory> 
    <Directory /vhosts/demo/> 
         Options Indexes FollowSymLinks MultiViews 
         AllowOverride None 
         Order allow,deny 
         allow from all 
    </Directory> 
    
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
    <Directory "/usr/lib/cgi-bin"> 
         AllowOverride None 
         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
         Order allow,deny 
         Allow from all 
    </Directory> 
    
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    
    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 
    
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
    
    Alias /doc/ "/usr/share/doc/" 
    <Directory "/usr/share/doc/"> 
        Options Indexes MultiViews FollowSymLinks 
        AllowOverride None 
        Order deny,allow 
        Deny from all 
        Allow from 127.0.0.0/255.0.0.0 ::1/128 
    </Directory> 
    </VirtualHost> 
    

  3. tạo liên kết tượng trưng trong/etc/apache2/sites-enabled/mà chỉ vào/etc/apache2/sites-available/demo

  4. Tạo /vhosts/demo/index.html tệp.

Và bây giờ những gì tôi nhận được là khi tôi đi đến {my-domain} tôi đi đến vhost mà tôi đã tạo ra, nhưng vấn đề là máy chủ mà chỉ tôi có trong bất kỳ trường hợp, không chỉ {my-miền }/demo những gì tôi muốn.

Tóm lại, tôi muốn tôi có thể tạo các máy chủ ảo khác nhau và đính kèm chúng vào các URL khác nhau sẽ có cùng url cơ sở, ví dụ: www.mydomain.com/vhost1, www.mydomain.com/vhost2 v.v.

Có thể không? Cảm ơn :)

Trả lời

15

Để bắt đầu, lý do tại sao có trường hợp là bạn có cài đặt *: 80 cho máy chủ ảo của mình, vì vậy nếu không có gì khớp với yêu cầu sử dụng mục nhập máy chủ ảo đầu tiên

Nếu tôi hiểu những gì bạn đang cố gắng để làm điều đó dường như bạn chỉ có thể muốn bí danh từng 'máy chủ ảo'

những gì bạn đang cố gắng làm không phải là khá một máy chủ ảo (ít nhất là những gì một máy chủ ảo có nghĩa vụ phải làm), nhưng bạn có thể thực hiện nó bằng cách sử dụng tính năng bí danh của apache

Alias /vhost1 /whatever/folder/your/vhost1/site/is/at 
Alias /vhost2 /whatever/folder/your/vhost2/site/is/at 

Bây giờ, bất kỳ tên miền nào bạn sử dụng, ví dụ: http://whatever.com/vhost1 hoặc http://whatever.com/vhost2 Cả hai em sẽ xuất hiện dưới dạng các trang riêng biệt

+0

Cảm ơn :) Tôi đã tạo Bí danh và tôi nhận được kết quả chính xác mà tôi muốn! Nhưng, để quan tâm: Dường như không thể tạo máy chủ ảo theo cách đó, phải không? – Jibla

+0

Tôi không nghĩ vậy, tôi chưa bao giờ sử dụng nó như thế trước đây. Nói chung, bạn sử dụng nó khi bạn cần một máy chủ để có thể tệp máy chủ cho nhiều tên miền/ips, ví dụ: www.vhost1.com và www.vhost2.com và sử dụng máy chủ ảo là cách máy chủ biết tệp nào tới máy chủ www.vhost1.com và www.vhost2.com – jeffchong07

+0

trong trường hợp của bạn, chỉ có một tên miền để máy chủ ảo không nhất thiết hữu ích để phân biệt các trang web của bạn – jeffchong07

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