添加虚拟主机后,我的 Apache 安装在不显示默认站点

添加虚拟主机后,我的 Apache 安装在不显示默认站点

我的家用电脑上运行着一个网络服务器,用于提供我的个人网站服务。

我最近从 Ubuntu 切换到 Fedora。我启用了它httpd,它显示了默认页面http://本地主机。我向 /var/www/html 添加了 index.html,并且显示正常。

接下来,我添加了一个 VirtualHost(例如/etc/httpd/conf.d/example.confexample.com)并将其添加到我的hosts文件中。我的第二个网站在 example.com 上显示正常,但它也会显示在 上localhost

我 没有 作 任何 改变 , 默认 的httpd.conf, 所以DocumentRoot仍然 是 这样/var/www/html.

以下是我的文件的内容example.conf

<VirtualHost *:80>
    ServerAdmin [email protected]

    ServerName example.com
    ServerAlias *.example.com

    # Indexes + Directory Root.
    # DirectoryIndex index.html
    DocumentRoot /home/user/example/

    # CGI Directory
    # ScriptAlias /cgi-bin/ /home/drj/wordpress/cgi-bin/
    # <Location /cgi-bin>
        # Options +ExecCGI
    # </Location>

    # Logfiles
    ErrorLog  logs/wordpress-error.log
    CustomLog logs/wordpress-access.log combined
</VirtualHost>

<Directory /home/drj/wordpress>
    AllowOverride All
    Require all granted
</Directory>

我直接从 Ubuntu 中的原始配置复制了它,只更改了日志的路径。

答案1

对于未明确列为单独 VirtualHost 的域,定义的第一个 VirtualHost 也是默认 VirtualHost。如果您的配置不包含任何其他 VirtualHost 语句,则需要创建一个这样的语句。

<VirtualHost *:80>
ServerName apache.example.com
DocumentRoot /var/www/html
</VirtualHost>

服务器名称并不重要,我只是喜欢称之为 apache.mydomain.net

重要的是,这是配置中的第一个。因此,如果您将其作为单独的 .conf 文件放在 /etc/httpd/conf.d/ 中(如您的 example.conf),请确保其名称按字母顺序位于 example.conf 前面,以便 include 指令首先找到它!或者直接将其放在现有 example.conf 的 VirtualHost 指令前面。

相关内容