我的家用电脑上运行着一个网络服务器,用于提供我的个人网站服务。
我最近从 Ubuntu 切换到 Fedora。我启用了它httpd
,它显示了默认页面http://本地主机。我向 /var/www/html 添加了 index.html,并且显示正常。
接下来,我添加了一个 VirtualHost(例如/etc/httpd/conf.d/example.conf
example.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 指令前面。