通过局域网访问另一台计算机上的本地主机(xampp) - 如何实现?

198

我刚刚在家里建立了一个Wi-Fi网络。我的桌面电脑上有所有文件(192.168.1.56),我想从另一台电脑(192.168.1.2)访问那里的localhost。

在我的桌面电脑上,我可以通过普通的http://localhost访问本地主机。Apache像往常一样运行在80端口。

我该怎么做才能实现这个目标?网上有文档,但它们要么不起作用,要么过于零散和混乱,难以理解。

我认为我需要更改Apache的httpd.conf文件和hosts文件。您有什么关于如何进行更改的想法吗?


2
可能对此问题感兴趣的人可以参考以下链接:如何在同一网络上的另一台计算机上连接到本地主机? - Martin Thoma
1
以下是我在Windows 10上的实践方法:打开命令提示符并输入ipconfig,找到您的IPv4地址,然后将您的网站URL重命名为该IP,例如:http://192.168.0.2/example。然后在Windows中搜索“允许应用程序通过Windows防火墙”,单击它,然后单击更改设置,确保HTTP Apache服务器被选中。希望能有所帮助。 - csandreas1
我有一个名为app.sitename.com的网站。现在,我可以使用IP地址在同一网络中的另一台电脑上访问该网站。如何使用子域名进行访问。app.ipaddress.com不起作用。我该怎么做才能在远程计算机中添加子域名? - vicky
26个回答

0

xampp\apache\conf\extra\httpd-xampp.conf文件中的Require Local替换为Require all granted


0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>

<Files ".ht*"> Require local #Require all denied </Files><Files ".ht*"> 需要本地访问 #禁止所有访问 </Files> - asd
3
欢迎来到Stack Overflow!这段代码可能能够解决问题,但是附加一些解释确实有助于提高你的帖子质量。记住你在回答问题时是为未来的读者服务的,这些人可能不知道你提供代码建议的原因。请尽量避免在代码中过多地添加解释性注释,这会降低代码和解释的可读性! - kayess

0

从另一台计算机访问运行在本地主机上的Apache最简单的方法是使用https://pinggy.io。只需运行以下命令:

ssh -p 443 -R0:localhost:80 a.pinggy.io

它将为您提供一个公共URL。


-1

所以我试图解决一个类似的问题,连接到我的局域网中完全不同的服务器,以便在停电后恢复时,我的服务器会重新上线,其他系统仍然可以通过自动化进行连接。然而,我的问题是 DHCP 偶尔会给我的服务器分配不同的 IP。这个帖子回答了我关于 Windows 本地已经有的 NAMESERVER 的问题。我通过批处理文件直接连接到我的服务器 IP 地址 http://192.168.1.5 来初始化连接,但当出现电力问题时,它无法连接。我将 .bat 文件更改为指向 http://DESKTOP-actualnamewhereserver:port,问题就解决了。如果我不更改计算机名称,那么当 DHCP 分配一个新的 IP 地址给 DESKTOP-actualnamewhereserver 时,它仍将以自己的名称在局域网上标识,因此能够接受连接,无论其 IP 地址如何。只需将托管 Apache 服务器的计算机的名称告诉您无线局域网上的其他人,假设它的名称为 DESKTOP-DOUGHFACTORYHUT,他们将键入 http://DOUGHFACTORYHUT:80 或您的 apache 配置设置的端口号,例如 LOCALHOST:80,这本质上是附加到由 DHCP 分配或您设置为服务器的静态 IP 地址的本地动态 IP 地址。


-2

我完全同意BugFinder的观点。

简单来说,只需在运行于192.168.1.2的浏览器中输入IP地址192.168.1.56即可!

如果无法正常工作,则可能是以下原因:

网络连接问题: 首先,在192.168.1.2计算机的命令提示符/终端中使用“ping 192.168.1.56”命令检查您的网络连接。
防火墙问题: 您的Windows防火墙设置没有允许XAMPP(Apache)的规则。(最有可能的问题) 解决方法:进入高级防火墙设置,为Apache可执行文件添加入站和出站规则。
Apache配置问题: 您的Apache只配置为监听本地请求。 解决方法:通过打开httpd.conf文件并将“Listen 127.0.0.1:80”替换为“Listen 80”或“*Listen:80”来解决。
与其他服务器(如IIS等)的端口冲突: 解决方法:关闭Apache服务器,然后在浏览器中打开本地主机。如果获得任何响应,则关闭该服务器,然后启动Apache。
如果以上方法都不起作用,那么可能是您的Apache服务器存在一些配置问题。尝试找出问题所在,否则只需重新安装并将所有PHP文件(htdocs)转移到新的XAMPP/WAMP安装中即可。

1
首先,这篇文章已经五年了,所以这个答案可能对原帖作者没有帮助。其次,你可以使用Markdown来改善你的回答格式,使其更易读和跟进。相信我,这是一个不错的技能要掌握的。 :-) - Claudia

-3

在网络上运行 Nodejs 服务器

const port = process.env.PORT || 3000; 
const server = http.createServer( 
server.listen(port, '0.0.0.0', ()  => console.log(`Server started on port ${port}`)
));

运行http://yournetworkipaddress:3000以通过本地局域网(LAN)访问您的应用程序

查找您的网络IP地址的步骤。

MacOS

  1. 转到“系统偏好设置”>“网络”
  2. 在连接下检查网络IP地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接