我已经安装了 XAMPP,它运行良好,localhost 显示了它需要的所有内容(我在 /mediawiki/ 有一个 wiki,在 /site/ 有一个静态网页的迷你网站)。运行 Windows 7。
在我尝试从网络外部访问我的服务器之前,我可以通过转到机器的 IP 地址 (192.168.1.69/mediawiki) 从网络内部访问我的 wiki。但我希望这个 wiki 可以从网络外部访问。我已经花了大约 10 个小时在 Google 上搜索并尝试让它工作。
我的服务器提供静态 IP 地址,因此我不需要任何 DynDNS 更新软件,但我已经从 freedns.afraid.org(因为免费)为我的 (WAN) IP 地址(我们称之为 75.xxx)设置了一个 DNS 帐户。我尝试编辑 httpd.conf 文件多次试图使其工作,设置 ServerName 192.168.1.69、75.xxx、我设置的 DNS 域、0、*-- 什么都没用,我无法从网络外部连接到服务器。更糟糕的是,现在我无法从网络内部连接到服务器,即使我已经恢复了原始 httpd.conf 的备份(我以防万一做了备份)。
httpd.conf 设置为监听端口 80,并且所有转发都已处理,无论是在路由器上还是通过 Windows 防火墙(以防万一,传入和传出均已处理)。我尝试使用另一个开放端口,但仍然没有结果。此时,我不知道我错过了什么,因为我觉得我已经尝试了所有我能在 Google 上找到的方法。
答案1
好的,只需注意以下几点即可开始运行:
1) 确保您已启动并运行 XAMPP。您应该能够使用机器上的浏览器通过 127.0.0.1 浏览您的网站。如果可以,则您的 apache 至少正在运行并提供页面。
2)为了使 httpd.conf 保持简单,VirtualHost 的顶部应如下所示:
<VirtualHost *:80>
ServerName example.com [your domain name]
DocumentRoot /var/www/html [path to your root directory of your web site]
...
*:80 告诉它监听端口 80 上的所有 IP。ServerName 告诉它应该将此 VirtualHost 应用于对该域名的任何请求。注意:ServerAlias www.example.com 很常见,否则它不会自动确定 www. 是同一个东西。DocumentRoot 告诉它从哪里获取文件。
3)确保您的网络设置正确 - 您的静态 IP、网关等,以便
可以真正连接到您的机器。
4) 从外部机器 ping 您的 IP,以确保您至少可以访问它,并且两台计算机之间没有网络问题。然后使用另一台机器打开浏览器并在 URL 字段中输入http://[your external ip]
。您可能看到 apache 欢迎页面或禁止页面或各种内容,具体取决于您的设置,但它至少应该给您一些信息。这表明外部机器浏览器正在与您的 Web 服务器建立有效连接。
5) DNS 现在是要解决的最后一步。您需要至少将 A 记录链接到您的 IP 地址。通常,您会在购买域名的注册商处处理此问题,除非您手动更改所使用的名称服务器。如果您使用注册商,通常会有一个地方称为“DNS 管理”或“区域文件”或类似名称。您需要将 tld(顶级域)路由到您的计算机的 IP 地址。您还应该为 www 添加指向 tld 的 CNAME 记录。示例:
example.com A 1.2.3.4
www.example.com CNAME example.com.
这基本上就是它的简单之处。您的里程碑是 A) 确保您可以让 Apache 在本地工作,然后 B) 确保您的机器可以通过互联网或内部网络访问,以及 C) 设置 DNS,以便他们可以使用域而不是 IP。