为单个IP创建两个虚拟主机

时间:2014-05-21 09:58:58

标签: linux apache ubuntu virtualhost

抱歉,我的问题可能会重复。但是,我已经读过类似的几个堆栈,但没有一个解决了我的问题。 我想在我的服务器apache2中创建两个VirtualHost(有多个DocumentRoot)。 这是我的配置(/ etc / apache2 / sites-enabled / 000-default):

ServerName jlcj.goforward.com
 <VirtualHost *:80>
      ServerAdmin test@localhostxxx
      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 test@localhostxxx
     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 test@localhostxxx
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>

请帮助,我的配置有什么问题?

2 个答案:

答案 0 :(得分: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/htdocs的文档根www.domain.com/www/subdomain/的{​​{1}}

如果要将另一个系统文件夹添加到文档根目录,可以使用symlink

答案 1 :(得分: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>