多apache2网站无法正常工作

时间:2015-07-22 17:09:48

标签: apache2 virtual-machine webpage

我尝试在同一个IP上创建两个网站。我已经了解我的研究,如果我使用域名和子域名,就有可能。

现在我在ubuntu上的apache2的默认配置文件中创建了这个:

NameVirtualHost prem2.trixia.dk:80
NameVirtualHost srv6.trixia.dk:80
<VirtualHost prem2.trixia.dk:80>
    ServerName prem2.trixia.dk
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost srv6.trixia.dk:80>
    ServerName srv6.trixia.dk

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/host523.trixia.dk

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我想做的是,如果你去网站srv6.trixia.dk,它会转到文件夹/var/www/host523.trixia.dk,如果是它的prem2.trixia.dk,它只是默认网页。

现在,如果我去srv6.trixia.dk,它会转到/var/www/html。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

我假设您使用的是Apache 2.2或更低版本,在我推荐的2.4 NameVirtualHost中。

建议您使用可选端口作为参数将IP地址放入NameVirtualHost,如下所示:

NameVirtualHost 123.123.123.123:80

在我的服务器上,我写的是这样的:

NameVirtualHost *:80

对Apache说,它可以在所有服务器ip-adresses上安装VirtualHost。因此请将NameVirtualHost <servername>:80替换为NameVirtualHost <ip-address>:80NameVirtualHost *:80

接下来我会将VirtualHost块重写为:

<VirtualHost *>
 ServerName prem2.trixia.dk
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/html
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *>
 ServerName srv6.trixia.dk

 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/host523.trixia.dk

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

即替换每个<VirtuaHost>部分。

我认为您所犯的错误是两个NameVirtualHost,这导致Apache错误地解释了您的虚拟主机。

这可能是一个很好的页面供您阅读:http://httpd.apache.org/docs/2.2/vhosts/name-based.html