Apache 2.4.10 VirtualHost 索引页未显示

Apache 2.4.10 VirtualHost 索引页未显示

要直接查看我对问题的描述,请参阅问题部分。

语境:

运行 XUbuntu 14.10 和 Apache 2.4.10。

我对 Apache 还很陌生,所以我尝试设置简单的 VH...取得了一些成功,但仍然遇到问题。我阅读了文档,但找不到我的配置出了什么问题。我想配置两个虚拟主机:我的名字企鹅网

配置

以下是我当前配置的简短描述(非详尽)。

/etc/apache2/apache2.conf

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options +Indexes 
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>


<Directory /var/www/html/flashlight/>
        AllowOverride All
</Directory>

<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
    ServerName www.example.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    <Directory /var/www/>
        AuthName "Mon domaine"
        AuthType Basic
        AuthUserFile /etc/apache2/users.passwd
        Options +Indexes 
        Options FollowSymLinks
        AllowOverride None
        Require valid-user
    </Directory>
</VirtualHost>

/etc/apache2/sites-enabled/myname.conf

<VirtualHost 127.0.0.2:80>
    ServerName myname.com
    ServerAlias www.myname.com
    DocumentRoot /var/www/html/myname

    <Directory /var/www/html/myname>
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

/etc/apache2/sites-enabled/penguin.conf

<VirtualHost 127.0.0.3:80>
    ServerName penguin.com
    ServerAlias www.penguin.com
    DocumentRoot /var/www/html/penguin

    <Directory /var/www/html/penguin>
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

两个虚拟主机均按照 Apache 文档中的说明使用 启用a2ensite。Apache 使用 重新启动/etc/init.d/apache2 graceful。在 中/var/www/html/penguin/var/www/html/myname我创建了简单的index.html文件来检查我是否在虚拟主机上。

最后我改成/etc/hosts包含:

127.0.0.1       localhost
127.0.0.2       myname.com
127.0.0.3       penguin.com

为了检查配置,我运行apachectl -S并可以看到:

VirtualHost configuration:
127.0.0.3:80           penguin.com (/etc/apache2/sites-enabled/penguin.conf:1)
127.0.0.2:80           myname.com (/etc/apache2/sites-enabled/myname.conf:1)
*:80                   www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)

问题

现在我已经配置了两个虚拟主机,我尝试访问它们。当我尝试penguin.com在浏览器 (Firefox) 中访问时,我看到的是/var/www/html/index.html 而不是/var/www/html/penguin/index.html。我必须明确输入penguin.com/index.html才能看到正确的索引页。

但是当我访问时myname.com,提供了正确的索引!?

而且,当我使用 Chrome 访问这些网站时,不会出现此问题,并且我可以直接看到正确的主页。

我的 Apache 配置有问题吗?或者您认为这仅与 Firefox 有关(可能读取不/etc/hosts正确)?

编辑

只是忘了说,当我通过 IP(127.0.0.2/3)访问页面时,我在 Firefox 中遇到了同样的问题(只有 127.0.0.2 有效)。

使用wget,我按预期获取了文件。所以我猜想这可能与浏览器有关,而不是 Apache 配置。

编辑2

<VirtualHost *:80>为了“解决”这个问题,我用我的本地 IP 地址替换了 /etc/hosts 中的环回地址。此外,我还用替换了两个文件中的VirtualHost 声明。现在运行良好!

我仍然想知道为什么 Firefox 在给定完整的环回 IP 地址时无法获得正确的索引。

抱歉,帖子太长了!

谢谢

答案1

在这种情况下,firefox 将检查您的 /etc/hosts 作为名称解析的最后一个选项。

您可以尝试这个解决方法。

  1. 打开 Firefox 并输入about:configURL。
  2. 搜索keyword.enabled并将其设置为 False。
  3. 确保在 /etc/nsswitch.conf 中,hosts条目具有files作为第一个选项。

相关内容