配置 DNS 以解析 WAMP 虚拟主机?

配置 DNS 以解析 WAMP 虚拟主机?

我在虚拟机上使用 WAMP 设置了一个网站。该虚拟机位于具有内部域 123.net 的网络上。在 DNS 中,我已配置 CNAME(site.123.net)以指向虚拟机。但是,当我尝试 site.123.net 时,我收到 403 Forbidden 错误(这是一个 wamp 错误,因此它击中了 wamp)下一步该如何配置它,以便当我输入 site.123.net 时,它会直接转到网站?

谢谢!

答案1

如果你只想在内部访问主机,你只需使用一个hosts文件。用 Notepad++
打开C:\Windows\System32\Drivers\etc\hosts文件,并添加一个新行:

1.2.3.4 123.net

因此,IP 位于首位,然后是空格/制表符和您想要的域名。就是这样。保存后,它就可以正常工作了。

如果我没有 Notepad++ 怎么办?
将 hosts 文件复制到桌面或任何其他正常位置。进行编辑,然后将其复制回来。这是必需的,因为该文件是系统文件,因此您必须是管理员才能更改它,但记事本默认不会以管理员身份启动。

如果我使用 Linux/BSD 会怎样?
只需将相同格式的条目添加到/etc/hosts

如果它是子域名怎么办?
1.2.3.4 subdomain.123.net

答案2

我收到403 Forbidden错误(这是 WAMP 错误,因此它击中了 WAMP)。下一步该如何配置它,以便当我输入时site.123.net,它会直接进入网站?

WAMP 适用于本地开发。如果您想从另一台计算机(即使在您的本地网络上)访问 WAMP,您可能需要编辑 Apache 的设置。

要寻找的关键指令是要求指令,用于控制对虚拟主机(您的网站)的访问。例如,在 WAMP 中,对于默认虚拟主机,您可能有类似以下内容localhost

例如 httpd-vhost.conf

#
# Virtual Hosts
#
<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www"
  <Directory "${INSTALL_DIR}/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

在 WAMP 3.2.0 中,此文件通常位于例如下c:/wamp64/bin/apache/apache2.4.41/conf/extra/httpd-vhost.conf


在这种情况下,Require local意味着只有本地计算机(127.0.0.1::1或)才被允许连接到端口 80 上的localhost主机。localhost

改变此设置以允许任何计算机连接到该虚拟主机,你可以使用Require all granted

例如 httpd-vhost.conf ( Require all granted)

#
# Virtual Hosts
#
<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www"
  <Directory "${INSTALL_DIR}/www/">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

但这不是唯一的选择。例如,Require也可以采用部分 IP:

# Limit host access to client IPs starting with 192.168.1.x
Require 192.168.1

上面已经给出的链接和mod_authz_host 的官方 Apache 文档还有其他Require您可能觉得有用的例子。


您应该彻底检查 Apache 配置中的Require指令。除了 ex.httpd-vhost.conf和任何虚拟主机(例如example.com和)之外, ex. 下的123.example.comApache文件是另一个需要查看的重要配置文件,因为它控制服务器的全局设置。httpd.confc:/wamp64/bin/apache/apache2.4.41/conf/httpd.conf

如果上述建议不起作用,您可能需要对虚拟主机进行更多更改,甚至可能需要重新考虑 DNS 方法。子域名通常不是 CNAME。


相关内容