离线时无法从 Localhost 访问 Localhost 中的 VirtualHost,如何修复?

离线时无法从 Localhost 访问 Localhost 中的 VirtualHost,如何修复?

我正在建立自己的本地开发 Web 服务器,主要用于主题开发。

我已经在 Ubuntu 13.04 64 位桌面上成功设置了 LAMP,apache 运行良好。

安装LAMP的机器也是我的桌面站。

所以我想从本地主机本身和局域网内的另一台机器访问虚拟主机。

我已经设置了我的第一个虚拟主机,名为devone.loc
我已经将名称插入我的 hosts 文件中。
一切正常且可访问。
它也可以在局域网中的任何机器中访问,我已经在 DD-WRT 路由器的 DNSmasq 中设置了它。

但是,当我禁用网络连接时,虚拟主机将
无法再访问。但是默认虚拟主机在没有网络的情况下仍然可以访问。

这里似乎有什么问题?我还需要在本地主机中访问虚拟主机,因为它也是我的桌面站。

我已将虚拟主机配置文件附加到以下位置:

  <VirtualHost *:80>
    DocumentRoot /var/www2
    ServerName devone.loc
    ServerAlias www.devone.loc
    <Directory /var/www2>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
  </VirtualHost>


如果您是虚拟主机用户,您可以轻松重现我的问题。
禁用所有网络,然后使用 Firefox(在我的情况下是 FF v23)浏览
本地开发网站,它将抛出服务器未找到错误。

在本地主机的虚拟主机上离线浏览我的网站对我来说非常重要,
我用它来向客户进行演示或项目展示。

附加信息

我忘了说我的机器上也安装了 Webmin。


更新
我已经使用 LinuxMint 15 在另一台 Linux 机器上设置了另一个 Web 服务器,服务器是 XAMPP 1.8.2-1,最终结果相同。

我尝试在网络被禁用的情况下设置 wordpress,但它抛出了“未找到服务器”错误,或者当目录为空时,它会抛出“禁止访问”。

当我检查或勾选 Firefox 的“离线工作”菜单时,我可以访问 wordpress 安装菜单,但只有索引部分,单击“下一步”后便无法再访问。

我已经进行了几种指令组合,但仍然无法使其工作。

所以,主要问题是......

当所有网络都禁用时,我的 VirtualHost 无法访问。只有当网络启用时,才可以访问。

更新-我已修复

这个问题实际上与 Firefox 设置有关,更改设置确实解决了我的问题。

网络.dns.禁用IPv6是我将其布尔值更改为的 Firefox 首选项名称false

所以,我做了以下事情:

  1. 打开 Firefox 并输入关于:配置在地址栏中。
  2. 我收到了警告提示...这可能会使你的保修失效,我点击了I'll be careful, I promise!
  3. 在标签下方的搜索栏中,我搜索了network.dns.disableIPv6,当它出现时,我只需双击它即可将其值更改为false
  4. 我重启了机器,浏览我的项目网站,然后,砰!终于打开了。

对于像我这样的新手,希望这可以对你有所帮助。

我现在可以安然入睡了……感谢这个帖子

我彻夜难眠地搜索这个问题,不同的搜索字符串和短语会产生不同的搜索结果。我终于找到了正确的页面。我还发现这个问题也被问到在超级用户中

答案1

如果您只是设置一台开发机器,则不需要外部 URL 进入您的机器,因为您应该以 URL 无关紧要的方式进行开发。我同时进行多个项目,所有项目在没有互联网连接的情况下都能正常工作。这就是我设置平台的方式。

localhost 不需要互联网即可工作。

打开您的主机文件并将您的网站添加到您的开发机器。

sudo nano /etc/hosts

对于您要构建的每个站点,请为其添加一个主机记录,如下所示。 在此处输入图片描述

现在您可以在 apache 虚拟主机文件中进行相应的设置。

例如,这是我的 elim.localhost 站点的配置文件。我将其存储为 /etc/apache2/sites-available/elim.localhost.conf

在此处输入图片描述

将此信息添加到文件后,我发出以下命令:

sudo a2ensite elim.localhost.conf && sudo service apache2 reload

现在在浏览器中访问我的网站我可以输入:

elim.localhost

我对每个项目都重复此过程。根据本文发布时的设置,以下 URL 可用于我的开发机器,所有 URL 都指向不同的地方。

  • elim.localhost
  • 18we.localhost
  • 29pines.localhost

如果您在 mysql 数据库服务器上使用 phpmyadmin 工作,localhost/phpmyadmin 仍然可以正常工作。

确认即使网卡与网络断开连接也能正常工作。

相关内容