我一直在努力让 vhost 配置在工作中的内部开发服务器上工作。我在站点可用目录中找到了其他 vhost 配置。出于某种原因,我不明白为什么我的新 vhost 没有响应任何请求。我得到的只是一个 404 语句。这不是一个公开访问的服务器,所以我不确定这是否与此有关。此外,如果我故意在配置中添加语法错误,apache 会向我大喊大叫,所以我知道它实际上正在加载。我多次重新启动了 apache 服务器。我不知道这是否与服务器名称有关。我只想输入 192.168.254.35/rackapp,然后让 apache 将我放在我选择的 DocumentRoot 中。目前我可以执行 192.168..254.35/rack_example/public。
- 我还应该在哪里进行编辑才能使其正常工作?
这就是我要加载的内容
<VirtualHost *>
ServerName rackapp
ServerAdmin [email protected]
DocumentRoot /var/www/rack_example/
</VirtualHost>
此配置没有问题
<VirtualHost *>
ServerName collab
ServerAdmin [email protected]
DocumentRoot /var/www/collab/
ErrorLog /var/log/apache2/colab-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/collab-access.log combined
</VirtualHost>
答案1
Apache 使用您在浏览器中输入的主机名来选择正确的虚拟主机。如果您使用 IP 地址,它将选择第一个可用的虚拟主机。
要测试虚拟主机,您应该通过其名称访问它们。为此,您可以编辑hosts 文件 /etc/hosts
并添加以下两行:
192.168.254.35 rackapp
192.168.254.35 collab
%SystemRoot%\system32\drivers\etc\hosts
对于 Windows 系统。
然后您将能够访问http://rackapp/
或http://collab/
测试您的 Apache 配置。
你也可以玩一下,直接将 HTTP 标头发送到你的 Web 服务器:
$ echo -e "GET / HTTP/1.1\r\nHost: rackapp\r\n\r\n" | nc 192.168.254.35 80
答案2
您在这里混淆了服务器名称和 URL。
如果您希望192.168.25.35/rackapp
服务器的 URL 为 ,则 VirtualHost 的 ServerName 应该是 ,192.168.25.35
而不是rackapp
。使用您已获得的设置,您需要使用 连接到服务器http://rackapp
,这将为您提供为虚拟主机设置的文档根目录。
如果尝试连接时http://rackapp
出现“找不到服务器”的提示,则需要编辑 /etc/hosts 文件以包含以下行
19.168.25.35 rackapp