我正在尝试在 Ubuntu 上安装 Discourse,但它不起作用

所以我正在尝试在我的 Ubuntu 机器上安装 DC(我们就这么称呼它),但当我输入我的网站域名时,系统提示:

警告:计算机的 443 端口似乎无法通过主机名 discoursedemo.tk 访问。
警告:连接到 http://discoursedemo.tk(端口 80)也失败。

这表明 discoursedemo.tk 解析到了某个无法访问您正在安装 Discourse 的这台机器的 IP 地址。

首先要做的是确认 discoursedemo.tk 已解析到这台服务器的 IP 地址。
您通常可以在购买域名的同一位置进行此操作。

我使用 CloudFlare 处理 DNS 相关事务,使用 FreeNom 注册域名。以下是我 DNS 列表中的截图:

我是不是哪里做错了?我想把服务托管在我的机器上,而不是像 Ocean 这样的服务器上(我忘了具体叫什么)。

正如我所说的,我希望将其托管在我的机器上,而不是任何像 Ocean 这样的服务器上(再次记不清了,哈哈)之类的(这样我就不需要付费了)。


附注:我使用 GitHub 登录,所以我的头像和名字是那样的,哈哈。

问题正如所述。如果这是您的家用电脑,很可能是防火墙问题。您需要确保传入到端口 80 和 443 的连接能够到达您的电脑。

需要更多信息。您能否使用域名 ping 服务器?

那我该怎么阻止防火墙干扰?Ubuntu 不是没有防火墙吗?我会去查一下。

ping discoursedemo.tk
ping: discoursedemo.tk: 主机名未关联任何地址

等等,为什么会这样?

是的,Ubuntu 没有……除非我弄错了?

您需要在 DNS 中设置一条 A 记录,将 discoursedemo.tk 解析到您的服务器 IP 地址。

在您发布的图片中,您为 discoursedemo.tk 创建了一个 CNAME 记录。您需要创建一个指向您机器公网 IP 的 A 记录。建议您使用某个子域名,例如 www

所以,比如我从一个公共 IP 查询网站获取我的公网 IP 吗?

@pfaffman @downey,所以我做了以下操作:

仍然没有奏效。我肯定是哪里搞错了,但问题是,我到底哪里搞错了?

仅供参考,www.discoursedemo.tk 现已从我使用的 DNS 服务商解析到目标 IP 地址。我也能成功 ping 通该主机,说明互联网可以访问到它。

但我无法通过 443 端口或 80 端口访问它,这可能意味着您的主机上尚未有 Web 服务器在这些端口上监听,也可能是防火墙阻止了连接。

好的,我刚注意到它有个防火墙,但不知道如何修改它以让这些端口正常工作,也无法关闭它……

等等,哦不,我已达回复上限了。

编辑:等等,我刚发现,我该如何更改 Discourse 监听的端口?如果你在 CloudFlare 上有免费账户,80 和 422 端口会被阻止,哈哈。

编辑 2:所以我无法重建应用。系统提示需要确保某个守护进程已启动。

编辑 3:所以我卡在“正在检查您的域名 . . .”这一步了,哦不。

再说一次,如我之前所说,我已达回复上限……安息吧。

另外,我更改了端口,但它还是自行重建了,所以……

很遗憾,我对 CloudFlare 及其服务一无所知,也不清楚哪些计划会限制哪些功能。建议您尝试查阅 CloudFlare 的官方支持网站或论坛,以获取配置方面的帮助。

此外,我从未在非标准端口上安装过 Discourse,因此无法就此为您提供帮助;可能有一些人有过相关经验,但通常大多数网站都运行在 80 端口(HTTP)或 443 端口(HTTPS)上。

是的,内部运行端口其实无所谓,但为了能让浏览器与之通信,你肯定需要将其在 80 端口暴露出来,最好也开放 443 端口以面向外部世界。