Apache多域设置

Thr*_*ad7 9 apache subdomain apache2 virtualhost virtual-hosts

对于我正在设置的基于Linux的Apache 2.2服务器,我有一个相当简单的问题.我想在同一台服务器上设置两个完全不同的域.但它只提供第一个标签的内容!我搜索过StackOverflow并在Apache.org上阅读项目但没有运气.

我按照Apache.org上的说明进行操作,并将这两部分放在我的http.conf文件的底部.

<VirtualHost *:80>
    DocumentRoot /var/www/mydomain1
    ServerName sub1.mydomain1.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/mydomain2
    ServerName sub2.mydomain2.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

现在,当我使用浏览器访问:http://sub1.mydomain1.com它很好.但是如果我去http://sub2.mydomain2.com我仍然只能获得位于/ var/www/webfiles/mydomain1中的内容.

我做了许多显而易见的事情,例如: - service httpd restart - 我改变了httpd.conf中两个条目的顺序,再一次,它只服务于列表中的第一个条目. - 我使用Googled的一个支持文档说,确保在您的系统上有一个有效域的以下入口点.所以我输入了这个(但它没有改变任何东西):ServerName sub2.mydomain2.com:80

它一定是愚蠢的东西,但我无法弄清楚!

Thr*_*ad7 12

好的,我明白了.这很傻.我只需要取消注释这一行,所以我实际上会使用所有的虚拟主机:

NameVirtualHost *:80
Run Code Online (Sandbox Code Playgroud)

  • 那条线在哪里? (4认同)

hsa*_*ers 5

您需要在两个单独的虚拟主机中设置这两个域.通常,当我这样做时,我喜欢拆分一个包含虚拟主机文件的include目录,每个文件包含一个虚拟主机.

<VirtualHost *:80>
  ServerName site1.com
  DocumentRoot "/var/www/site1"
</VirtualHost>
<VirtualHost *:80>
  ServerName site2.com
  DocumentRoot "/var/www/site2"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)