2014-05-21 42 views
0

對不起,我的問題可能會重複。但是,我已經閱讀了幾個相似的堆棧,但沒有一個解決了我的問題。 我想在我的服務器apache2中創建兩個VirtualHost(具有多個DocumentRoot)。 這是我的配置(在/ etc/apache2的/啓用的站點 -/000-默認):爲單個IP創建兩個虛擬主機

ServerName jlcj.goforward.com 
<VirtualHost *:80> 
     ServerAdmin [email protected] 
     DocumentRoot /var/www/symfony/ws1/web 
     <Directory /> 
     Options FollowSymLinks 
     AllowOverride None 
     </Directory> 
    <Directory /var/www/symfony/ws1/web> 
     Options Indexes Includes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     allow from all 
    </Directory> 


Alias /pages "/var/www/pages" 

</VirtualHost> 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/mtbe_test 
    <Directory /> 
     Options FollowSymLinks 
     AllowOverride All 
    </Directory> 
    <Directory /var/www/mtbe_test> 
     Options Indexes Includes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     allow from all 
    </Directory> 

    </VirtualHost> 

於是,我試圖綁定到另一個端口,但它不聽,像這樣:

Listen 8081 
<VirtualHost *:8081> 
ServerAdmin [email protected] 
DocumentRoot /var/www/mtbe_test 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
</Directory> 
<Directory /var/www/mtbe_test> 
    Options Indexes Includes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

Alias /mtbe_test "/var/www/mtbe_test" 
    </VirtualHost> 

請幫忙,我的配置有什麼問題?

回答

0

這是最小配置以執行你所需要的:

# Ensure that Apache listens on port 80 
Listen 80 

# Listen for virtual host requests on all IP addresses 
NameVirtualHost *:80 

<VirtualHost *:80> 
DocumentRoot /www/example1 
ServerName www.example.com 

# Other directives here 

</VirtualHost> 

<VirtualHost *:80> 
DocumentRoot /www/example2 
ServerName www.example.org 

# Other directives here 

</VirtualHost> 
2

您必須設置不同的虛擬主機。 對於每個虛擬主機,您可以設置不同的文檔根目錄。

這裏重要的是設置不同的ServerName的。因此,如果您有一個名爲domain.com的域名,並且您想爲subdomain.domain.com擁有不同的文檔根目錄,則需要構建兩個虛擬主機。

<VirtualHost *:80> 
    ServerName www.domain.com 
    DocumentRoot /www/htdocs/ 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName subdomain.domain.com 
    DocumentRoot /www/subdomain/ 
</VirtualHost> 

帶有此配置您在文檔根/www/htdocswww.domain.com/www/subdomain/subdomain.domain.com

如果您希望將其他系統文件夾添加到您的文檔根目錄下,你可以使用一個symlink

+0

+1但是,是否可以在VirtualHost(例如:www.domain.com)上放置相同的名稱? – jlcj

+0

你爲什麼想這樣做?您可以使用[符號鏈接](http://en.wikipedia.org/wiki/Symbolic_link)將另一個系統文件夾添加到您的documentroot中。 – Screeper