离线时本地主机中的虚拟主机无法从本地主机访问,如何解决?

Gar*_*ryP 5 virtualhost hosts localhost apache2

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

我已经在 Ubuntu 13.04 64 位桌面上成功设置了 LAMP,apache 工作正常。

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

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

我已经设置了我的第一个虚拟主机,devone.loc
我已经将名称插入到我的主机文件中。
一切正常且可访问。
它也可以在我局域网中的任何机器上访问,我已经在我的 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>
Run Code Online (Sandbox Code Playgroud)


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

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

附加信息

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


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

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

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

我已经完成了几种指令组合,但我仍然无法让它工作。

所以,主要问题是...

当所有网络都被禁用时,我的 VirtualHost 无法访问/访问。只有在启用网络时才能访问/访问。

更新 - 我已修复

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

network.dns.disableIPv6是 Firefox 的首选项名称,我将其布尔值更改为false

所以,我做了什么:

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

对于我这样的新手,希望能帮到你。

我现在可以安心睡觉了……多亏了这篇文章

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

Dav*_*ave 1

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

本地主机不需要互联网即可工作。

打开您的主机文件并将您的站点添加到您的开发计算机。

sudo nano /etc/hosts
Run Code Online (Sandbox Code Playgroud)

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

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

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

在此输入图像描述

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

sudo a2ensite elim.localhost.conf && sudo service apache2 reload
Run Code Online (Sandbox Code Playgroud)

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

elim.localhost
Run Code Online (Sandbox Code Playgroud)

我对每个项目重复这个过程。根据本文撰写时的设置,以下网址可以在我的开发计算机上使用,所有网址都位于不同的地方。

  • Elim.localhost
  • 18we.localhost
  • 29pines.localhost

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

经证实,即使网卡与网络断开连接也能正常工作。