无法从本地网络访问托管在 apache 上的 Web 应用程序

时间:2021-03-25 16:22:13

标签: apache http connection mediawiki

作为新手在我的 linux pc 上的 apache httpd 中设置 mediawiki。在相应的 .conf 文件中设置了“要求全部授予”。路由器为 PC 分配了静态 IP 192.168.0.2。 pc 的 80 端口对任何设备开放。我从主人那里访问了 http://192.168.0.2/mediawiki/index.php。它按预期工作。现在,我尝试从连接到同一网络的 android 手机访问同一地址,但 chrome 向我显示消息“127.0.0.1 拒绝连接”。我注意到地址栏中的 http://192.168.0.2 部分已被 https://127.0.0.1 替换。同样的事情也发生在我手机上的 Firefox 上。我仍然可以通过我的手机访问 http://192.168.0.2,而且工作正常。那么这里发生了什么以及如何解决这个问题?

编辑:问题已解决。 Mediawiki 有这个 LocalSettings.php 文件,它在安装过程中自动创建。它包含一个字段“$wgServer”,它是“在完全限定的 URL 中使用的协议和服务器名称”,如文档中所示。该值在安装过程中自动设置为“http://127.0.0.1”。因此,每当我尝试从手机连接到 mediawiki 时,我实际上都被重定向到了同一部手机。我将值更改为“http://192.168.0.2”,现在一切正常!

2 个答案:

答案 0 :(得分:0)

从您的手机到托管 Web 服务器的 PC 的连接似乎发生了一些问题。 即使您几乎没有提供任何详细信息,您的配置看起来也不错:根据您的描述,我怀疑问题出在您的手机或路由器上,因为域和 url 从 192.168.0.2 切换到 127.0.0.1 并且协议从http 到 https。

您应该在连接到同一网络的另一台电脑上尝试相同的测试。 您可以更好地了解发生了什么,使用 curl 从命令行测试连接:

<块引用>

$ curl -v http://192.168.0.2/mediawiki/index.php

如果重定向是否由网络服务器请求,输出将为您提供一些关于正在发生的事情的详细信息。

答案 1 :(得分:0)

我的猜测是您的 apache 配置为侦听 127.0.0.1 或 localhost(这是默认设置)。打开 httpd.conf 或您的虚拟主机配置文件并查找 Listen。以下是官方文档中的一些片段:

<块引用>

Listen 指令告诉服务器只接受指定端口或地址和端口组合上的传入请求。如果在 Listen 指令中只指定了一个端口号,则服务器在所有接口上侦听给定的端口。如果给出了 IP 地址和端口,服务器将侦听给定的端口和接口。可以使用多个 Listen 指令来指定要侦听的多个地址和端口。服务器将响应来自任何列出的地址和端口的请求。

<块引用>

例如,要使服务器在所有接口上都接受端口 80 和端口 8000 上的连接,请使用:

Listen 80
Listen 8000
<块引用>

要使服务器在一个接口上接受端口 80 上的连接,而在另一个接口上接受端口 8000 上的连接,请使用

Listen 192.0.2.1:80
Listen 192.0.2.5:8000

更多信息在

https://httpd.apache.org/docs/2.4/bind.html