Apache的问题:子域去域名,不必

我已经安装了一个装有经典LAMP的Ubuntu 10.04 LTS机器。 我创build了两个网站:

一个公共网站,www.mysite.com

目前在private.mysite.com上开放的“私人”网站

我为他们创build了两个不同的configuration文件,

在/ etc /阿帕奇/网站可用/ mysite的

在/ etc /阿帕奇/网站可用/私人的mysite

使用默认的Apache虚拟主机configuration。 没有通配符,ServerName分别是www.mysite.com和private.mysite.com,我没有使用通配符。

当然还有那些启用/启用网站的符号链接。 每个网站都有自己的目录,

在/ var / WWW / mysite的

在/ var / WWW /私有的mysite

公共网站是一个WordPress博客。 私人网站是一个Web应用程序与几个PHP文件。

一切都应该好,我已经检查了几次,但有些奇怪的事情发生。 当我访问private.mysite.com私人部分进展顺利。

但是,当我访问www.mysite.com,服务器直接到private.mysite.com。

Apache日志显示,这些请求www.mysite.com甚至没有login

/var/www/mysite/logs/access.log(或error.log)

他们去,而不是

/var/www/private-mysite/logs/access.log

所以每个请求都去了子域。 任何想法来纠正这种行为?

*****************************更新******************** **************

更多信息:

ls -l / etc / apache2 / sites-available /

-rw-r--r-- 1 root root 859 2011-05-27 13:33 private-mysite -rw-r--r-- 1 root root 948 2010-11-18 22:16 default -rw-r--r-- 1 root root 7467 2010-11-18 22:16 default-ssl -rw-r--r-- 1 root root 264 2011-05-27 14:22 mysite 

/ etc / apache2 / sites-available / private-mysite内容:

 <VirtualHost xxxx:80> ServerName private.mysite.com DocumentRoot /var/www/private-mysite/html/ ErrorLog /var/www/private-mysite/logs/error.log CustomLog /var/www/private-mysite/logs/access.log combined </VirtualHost> 

/ etc / apache2 / sites-available / mysite的内容:

 <VirtualHost xxxx:80> ServerName www.mysite.com ServerAlias mysite.com DocumentRoot /var/www/mysite/ ErrorLog /var/www/mysite/logs/error.log CustomLog /var/www/mysite/logs/access.log combined </VirtualHost> 

VirtualHost主机定义块需要匹配NameVirtualHost指令。 它可能在/etc/apache2/ports.conf ,可能设置为*:80

要解决,要么改变你的NameVirtualHost

 NameVirtualHost xxxx:80 

或者更改你的VirtualHost定义:

 <VirtualHost *:80> 

请自行发布configuration文件和ls -l /etc/apache/sites-available 。 当重新启动Apache时,您是否看到任何错误或警告?

这可能是因为www.mysite.com由于某些原因而不匹配,所以Apache使用private.mysite.com作为默认虚拟主机(因为它是唯一存在的)。