需要帮助在 apache 上配置虚拟主机

需要帮助在 apache 上配置虚拟主机

我的网站启用了以下内容:

#
#  Example.com (/etc/apache2/sites-available/adityaherlambang.com)
#
<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName  www.adityaherlambang.com
        ServerAlias adityaherlambang.com

        # Indexes + Directory Root.
        DirectoryIndex index.html
        DocumentRoot /var/www/adityaherlambang.com/htdocs/

        # CGI Directory
        ScriptAlias /cgi-bin/ /var/www/adityaherlambang.com/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>


        # Logfiles
        ErrorLog  /var/www/adityaherlambang.com/logs/error.log
        CustomLog /var/www/adityaherlambang.com/logs/access.log combined
</VirtualHost>

在我的virtual.conf中我有:

#  We're running multiple virtual hosts.
#

NameVirtualHost *:80

我只是按照教程这里。为什么现在当我重新启动服务器时会出现以下情况:

 * Restarting web server apache2                                                                                                                             [Sun Aug 14 04:35:30 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
[Sun Aug 14 04:35:30 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
 ... waiting .......[Sun Aug 14 04:35:42 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
[Sun Aug 14 04:35:42 2011] [warn] NameVirtualHost *:80 has no VirtualHosts

我的等主机看起来像:

#127.0.0.1 localhost
127.0.0.1.:80 adityaherlambang.com

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

答案1

VirtualHost没有默认端口;当你说<virtualHost *>你的意思是全部端口全部地址。您需要改用*:80

答案2

伊格纳西奥是对的,但我只是想扩大一点。

如果你看一下文档名称虚拟主机。您可以看到语法要求先输入 IP,然后再输入端口。这并不意味着 Apache 会监听您在此处指定的端口,或者即使您只是使用,也不NameVirtualHost *意味着它会监听每个端口。Apache 具有聆听指令它定义 Apache 监听哪个端口。

通过设置,NameVirtualHost *:80您正在做的是,对于端口 80 上的所有请求,都通过基于名称的虚拟主机运行它。因此,如果您刚刚NameVirtualHost *告诉 apache,无论请求来自哪里,都通过基于名称的虚拟主机运行它。如果指定了 IP,那么只有该 IP 才会受到虚拟主机的约束。

因此,最简单的答案就是始终让您的 NameVirtualHost 与您的虚拟主机匹配。但我认为了解原因很重要。因为有一天您可能会遇到一个疯狂的服务器Listen 80 8080 81,其中 NameVirtualHost 仅设置在 8080 和 81 上??可能会发生。

相关内容