我一直在争取在工作中使用内部开发服务器上的虚拟主机configuration。 我在site-available目录中find了其他的vhostconfiguration。 出于某种原因,我不明白为什么我的新虚拟主机没有回应任何请求。 我所得到的是一个404声明。 这不是一个公开访问的服务器,所以我不知道这是否与此有关。 另外如果我故意添加一个语法错误在我的configuration..阿帕奇叫我,所以我知道它实际上被加载。 我已经多次重启了Apache服务器。 我不知道它是否与服务器名称有关。 我只想input192.168.254.35/rackapp,然后让apache把我放入我select的DocumentRoot中。 目前我可以做192.168..254.35 / rack_example / public。
这是我正在尝试加载
<VirtualHost *> ServerName rackapp ServerAdmin [email protected] DocumentRoot /var/www/rack_example/ </VirtualHost>
这个configuration工作没有问题
<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>
Apache使用您在浏览器中input的主机名来select正确的虚拟主机。 如果使用IP地址,则会select第一个可用的虚拟主机。
为了testing你的虚拟主机,你应该通过他们的名字来访问它们。 为此,您可以编辑hosts文件 /etc/hosts并添加这两行:
192.168.254.35 rackapp 192.168.254.35 collab
用于Windows系统的%SystemRoot%\system32\drivers\etc\hosts 。
然后,您将可以访问http://rackapp/或http://collab/并testing您的Apacheconfiguration。
您也可以玩一下,直接将HTTP头发送到您的Web服务器:
$ echo -e "GET / HTTP/1.1\r\nHost: rackapp\r\n\r\n" | nc 192.168.254.35 80
你在这里混淆了servername和URL。
如果您希望将192.168.25.35/rackapp作为服务器的URL,那么VirtualHost的ServerName应该是192.168.25.35而不是rackapp 。 通过设置,您需要使用http://rackapp连接到服务器,而这将为您提供为虚拟主机设置的文档根目录。
如果试图连接http://rackapp给你“Server not found”,那么你需要编辑你的/ etc / hosts文件来包含该行
19.168.25.35 rackapp