我使用Ubuntu 14.04,由tasksel安装Apache。
apache2ctl -S表示www.ijiameng.com存在于不同的conf文件中,默认的优先级较高,如下所示:
sunjizu@HP-Pavilion-g4-Notebook-PC:~$ apache2ctl -S VirtualHost configuration: *:80 is a NameVirtualHost default server www.ijiameng.net (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost www.ijiameng.net (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost foo.my (/etc/apache2/sites-enabled/foo.my.conf:1) port 80 namevhost www.ijiameng.net (/etc/apache2/sites-enabled/ijiameng.net.conf:1) alias ijiameng.net ServerRoot: "/etc/apache2" Main DocumentRoot: "/var/www"
但是/etc/apache2/sites-enabled/000-default.conf不包含与www.ijiameng.com相关的任何内容,如下所示:
sunjizu@HP-Pavilion-g4-Notebook-PC:/etc/apache2/sites-enabled$ cat 000-default.conf <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # vim: syntax=apache ts=4 sw=4 sts=4 sr noet </VirtualHost>
结果是非常烦人的,就是当我浏览http://www.ijameng.net ,浏览器直接进入默认configuration/var/www/ 。 但ijiameng.net运行良好,因为没有冲突的configuration。
任何东西都隐藏在000-default.conf ?
以000开头的默认configuration以更高的顺序列出,因为它是第一个被包含的,因为启用的站点将以数字顺序,然后按字母顺序被读取。 这可以通过指定多个包含条目来控制顺序来覆盖:
Include /etc/apache2/sites-enabled/ijiameng.net.conf Include /etc/apache2/sites-enabled/foo.my.conf Include /etc/apache2/sites-enabled/000-default.conf
www.ijiameng.net在默认configuration中显示的原因可能是因为它与您的主机共享IP地址。
请发布/etc/apache2/sites-enabled/ijiameng.net.confconfiguration,好像默认的configuration文件正在接收而不是vhost conf,那么问题出在vhost条目上。