0

半年前,我在我的计算机上安装了 XAMPP,其中有几个以“.dev”结尾的虚拟主机。当我现在尝试在 Chrome 中打开这些网站时,它给了我错误ICANN Name Collision。经过一些研究,我发现我不是唯一一个有问题的人,唯一的方法是更改​​为“.local”。

所以我更改了我的主机文件并 httpd.config 重新启动了系统/刷新了 DNS 缓存,但它不再工作了。我无法使用新的本地域名访问服务器。当我使用 IE 并输入 example.dev(或我之前使用的任何地址)时,它仍然重定向到 localhost 但不会重定向到旧目录。因此,我猜 Apache 注意到了更改并且正在使用新配置,但是我的浏览器以某种方式告诉我他们找不到服务器。

最可能的错误是什么?哪些错误日志可能有用?

如果我使用 XAMPP/Apache Shell 并输入 httpd -S 它会打印出当前的 v-Host 设置,就像在 v-host.config 文件中一样。

主机文件:

127.0.0.1 db.local

127.0.0.1 测试本地

127.0.0.1 www.test.local

127.0.0.1 主机.本地

127.0.0.1 www.host.local

apache\conf\extra\httpd-vhosts.conf:

<VirtualHost *:80>
    ServerName localhost
    ServerAlias localhost
    DocumentRoot "C:/XAMPP_DEV/htdocs"
</VirtualHost>
<VirtualHost *:80>
    ServerName db.local
    DocumentRoot "C:/XAMPP_DEV/phpmyadmin"
</VirtualHost>
<VirtualHost *:80>
    ServerName test.local
    ServerAlias www.test.local
    DocumentRoot "C:/XAMPP_DEV/htdocs/test"
</VirtualHost>
<VirtualHost *:80>
    ServerName host.local
    ServerAlias www.host.local
    DocumentRoot "C:/XAMPP_DEV/htdocs"
</VirtualHost>

那是我的 V-Host 配置和主机文件;我删除了所有以#开头的行。

4

1 回答 1

0

介绍..

这是一个古老的问题,因为我正在研究非常相似的东西。但是碰巧我知道答案只是不知道如何将它应用到我不想“root”的Android手机上。无论如何..我不知道它是否会帮助你 - 可能不像你可能已经解决的那样 - 但它可以帮助其他人。

只是解释一下:.dev成为新 gTLD。所以,有些人拥有这些域名。

你不能有一个固定的 IP 指向它——安全和法律原因。这就是您的浏览器无法识别它的原因 - 实际上是您的互联网提供商(或您选择的 DNS 服务器)的 DNS 服务器。

但..

有一种方法。您不必使用.local.

如果您的hosts文件(系统文件,而不是具有相似名称的服务器文件)指向托管网站的本地计算机,本地浏览器将识别它。或者,如果您的本地 DNS 服务器将该地址指向您的本地计算机或服务器。这两种情况都将强制执行您提供的 IP。

大多数开发人员不会使用 DNS 服务器。我会认为这是理所当然的,因为如果您有 DNS 服务器,您可能比我知道的更多(这不是很难完成的事情.. :) 并且可能不会遇到这些问题。

修复它..

假设您具有与以前相同的配置 - 使用.dev- 您只需转到您的计算机(或本地网络中的每台计算机 - 取决于您的情况)并C:\Windows\System32\drivers\etc\hosts在 Windows 下编辑文件。Linux 也一样/etc/hosts

您可以在文件末尾放置:

IP_OF_THE_MACHINE    yourfakedomain.dev

IP_OF_THE_MACHINE将只是正在开发的页面的“主机”的 IP:

  • 假设只有您会看到它,请使用127.0.0.1;
  • 假设您的朋友/老板需要检查您正在开发的当前状态,请在他的计算机中编辑此文件,并为您输入机器 IP 地址和本地开发的假域。这假设它们在同一个网络中;
  • 假设您将成为使用它的人,但将主机放在另一台 PC 上,请输入该 PC IP 地址(如上例所示)。

yourfakedomain.dev我认为这是不言自明的..

(应该不是问题,但我会将这些*更改为您将使用的假域名,例如 from <VirtualHost *:80>to <VirtualHost test.dev:80>。当然,每种情况的正确名称。)

试试这个并检查结果。应该是所有功能。

笔记..

您始终必须编辑至少三个文件:

  • 一个虚拟主机文件 - 分为几个单独的文件或一个下(如httpd-vhosts.conf);
  • 选择httpd.confIP 和端口范围并包含虚拟主机文件(或文件);
  • 您系统的hosts文件以强制执行诸如“假域名”之类的内容(test.dev、mymon.is.cool、hi.world.. 等 - 发挥您的想象力);

它应该始终与此一起使用。除非您与较旧或错误的配置(删除配置文件并卸载所有内容;重新安装并重新启动)或与您的路由器有冲突。

于 2016-06-06T15:30:55.783 回答