因此,我在 Windows 计算机上安装了 Apache Web 服务器/MySQL/myPhpAdmin。它位于我的桌面上。如果我转到http://本地主机、localhost/phpinfo.php 和 localhost/phpmyadmin.index.php 它们都出现在我的计算机上。
现在我希望其他用户能够访问我的网站,即http://localhost/page1.php 由于我有路由器,我已经在托管服务器的机器上进行了端口转发,并在本地机器的 IP 地址上转发了端口 80。
但是人们无法从其他地方甚至我家庭网络中的其他计算机访问此网站。我是否必须从 godaddy 或 google 等网站获取域名?或者我可以让人们连接到我的本地计算机(该计算机具有 apache Web 服务器),并在其上托管我自己的网站。
我真的很困惑,在安装了 Web 服务器并在 Apache 根目录中创建页面后,该如何继续操作。有人可以指导我如何进行设置吗?因为我在这方面没有任何实际经验。
谢谢!
答案1
检查Listen
apache httpd 配置文件中的指令。
还要验证服务器正在侦听的地址。netstat -na
对此很有用。 它需要侦听0.0.0.0
(或*
)或您的机器的地址。 不是127.0.0.1
。
答案2
因此,您可能遇到的问题是“localhost”应始终是本地计算机。(如果不是,则会出现问题)。因此,在您的计算机上,它是您的计算机。在我的计算机上,它是我的计算机。
假设您已正确设置端口转发,并且您的 ISP 允许流量路由到端口 80,则其他人应该能够通过端口 80 访问您路由器的公共 IP 地址(并访问您服务器的端口 80)。
您还需要验证您的 Apache 设置。如果设置了命名虚拟主机,则可能意味着当您通过http://本地主机/您将看到一组托管内容,但当其他人通过http://IP 地址/他们可以获得其他托管内容。
答案3
您应该首先弄清楚为什么同一网络中的其他计算机无法看到您的服务器。当他们尝试时会发生什么?您是否尝试在远程计算机的浏览器中同时使用计算机名称和 IP 地址?它们会给出相同的结果吗?
答案4
在我的例子中,我需要允许防火墙中的 http 和 https 端口。在 Ubuntu 上,防火墙称为ufw
,在 CentOS/Red Hat 上,防火墙称为firewall-cmd
。要使更改生效,您还需要重新加载防火墙配置。