# 无法连接 - DO 上的新安装

**URL:** https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144
**Category:** Self-hosting
**Created:** [2023年五月25日 05:05 UTC](https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144 "2023-05-25T05:05:56Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![kwest](https://avatars.discourse-cdn.com/v4/letter/k/a4c791/32.png) [@kwest](https://meta.discourse.org/u/kwest)
#### Post date: [2023年五月25日 05:05 UTC](https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144/1 "2023-05-25T05:05:56Z")

</div>

我刚刚尝试了两次在 Digital Ocean 上安装 Discourse。

尝试 1：  
第一次尝试时，我使用了官方 Github 说明，使用 DO Ubuntu 22.04 LTS 镜像，1GB 的液滴。

我使用了现有域的一个子域，以及一个已正常工作多年的 Mailjet 账户的凭据。

我不知道需要安装 Docker，所以当我输入  
`discourse-setup`  
时，安装程序说  
`Failed to find docker or docker.io on your PATH.`  
（在你的 PATH 中找不到 docker 或 [docker.io](http://docker.io)。）

然后我按 Enter 键继续安装 Docker。

之后，安装似乎运行正常。

它以以下内容结束：

```plaintext
117:M 25 May 2023 01:14:46.500 * DB saved on disk
117:M 25 May 2023 01:14:46.501 # Redis is now ready to exit, bye bye...

```

以及几行附加内容。

我不确定 DNS 传播的速度有多快，所以我将 DO IP 地址输入到我的 /etc/hosts 文件中。

我尝试在浏览器中指向我的子域 URL；我收到“无法连接到服务器”。

我尝试在浏览器中指向 IP 地址；我收到“无法连接到服务器”。

所以，我尝试了第二次。

尝试 2：  
我遵循了 [linuxhandbook](https://linuxhandbook.com/set-up-discourse-digital-ocean/) 上的说明，使用 Marketplace 选项卡中的 DO 一键安装，这给了我一个 2GB 的液滴。

通过 ssh 登录后，安装程序自动运行，并且似乎没有出现任何问题。最后，它说  
`Discourse is now installed. Log into your admin account in a browser to continue configuring Discourse.`  
（Discourse 现已安装。请在浏览器中登录您的管理员帐户以继续配置 Discourse。）

但同样，当我尝试在浏览器中指向我的子域 URL 或（此第二个液滴的新）DO IP 地址时，我的浏览器无法连接（我尝试了 Firefox 和 Safari）。

运行  
`./launcher start app`  
显示

```plaintext
x86_64 arch detected.
cadd91ccd0cd
Nothing to do, your container has already started!

```

（x86\_64 架构已检测到。 cadd91ccd0cd 没有什么可做的，您的容器已经启动！）

discourse-doctor 显示（除其他外）  
`Discourse container app is running`  
（Discourse 容器应用程序正在运行）  
并给出正确的  
`DISCOURSE_HOSTNAME`

我能尝试什么来让这个安装（其中一个或两个）响应我的浏览器？

（第二个 IP 地址仍在我的 hosts 文件中，但根据 DNS 检查器，它也已经传播，所以似乎应该可以通过子域 URL 或仅通过 IP 地址访问。）

感谢任何帮助。

---

<div class="post-metadata">

### Author: ![kwest](https://avatars.discourse-cdn.com/v4/letter/k/a4c791/32.png) [@kwest](https://meta.discourse.org/u/kwest)
#### Post date: [2023年五月25日 05:19 UTC](https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144/2 "2023-05-25T05:19:19Z")

</div>

还有一些细节：

据我所知，我没有任何控制面板来管理我的任何一个 droplet（没有 Plesk，也没有 cPanel）。

在典型的共享主机设置中，我通常会进入 public\_html 并创建一个简单的测试文件，例如 testfile.html，看看是否至少能加载一个纯 HTML 文件，但在 DO droplet 上，我不知道在哪里可以这样做（或者是否可以这样做）。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2023年五月25日 10:15 UTC](https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144/3 "2023-05-25T10:15:39Z")

</div>

> [@kwest](#):
>
> I wasn’t sure how quickly DNS would propagate, so I entered the DO IP in my /etc/hosts file .

如果 `./discourse-setup` 运行顺利，那么它应该已经能够解析您的域名了，所以您无需再进行任何操作。此时，DNS 传播对您的服务器来说已经完成了。

请注意，一键安装的 Digital Ocean Discourse 是一个 #unsupported-install，这意味着您在这里获得支持的可能性较小。 🙂

我建议您从头开始，并使用标准安装。

1. 创建一个液滴 (droplet)

2. 通过 SSH 登录

3. 运行 `ping yourdomain.com` 并查看它是否解析到您的服务器 IP（无论如何 `./discourse-setup` 都会显示警告，如果未解析）。

4. 解析成功后，使用官方指南安装 Discourse [discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md)

请反馈结果 🙂

当然，我不是专家，也许有人能够指出您当前的问题。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年五月25日 10:31 UTC](https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144/4 "2023-05-25T10:31:36Z")

</div>

> [@kwest](#):
>
> I wasn’t sure how quickly DNS would propagate, so I entered the DO IP in my /etc/hosts file .

没有必要这样做，这样做也没有帮助。如上所述，discourse-setup 会进行测试，以查看它是否可以使用主机名与自身通信。如果您在运行 discourse setup 之前编辑了 /etc/hosts 文件，那么 DNS 就无法工作，您也无法从 let’s encrypt 获取证书，这就是为什么 Web 服务器无法启动的原因。如果您尝试的次数足够多，您将被限制速率，需要等待一周或使用不同的子域。

您可以查看 /var/discourse/shared/logs/var-log/nginx/access.log（或非常相似的文件）来查看问题。

此时最简单的方法是使用新的子域，设置 DNS，等待其传播（有一些工具可以显示它），然后运行 discourse-setup。

---

<div class="post-metadata">

### Author: ![kwest](https://avatars.discourse-cdn.com/v4/letter/k/a4c791/32.png) [@kwest](https://meta.discourse.org/u/kwest)
#### Post date: [2023年五月26日 03:30 UTC](https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144/5 "2023-05-26T03:30:00Z")

</div>

感谢你们两位的回复。

我创建了一个新的子域名和一个新的 Droplet，并用它们进行了第三次尝试，现在一切都已启动并运行。

在我第一次尝试运行 `./discourse-setup` 时，输出中没有显示任何关于域名或 SSL 问题的迹象；有可能报告了错误但我错过了，但如果是这样，也许可以使这类错误通知更加明显。

我很高兴我的新 Discourse 已设置并运行。再次感谢帮助新手。

是否有可能在 [discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md) 中添加一个故障排除技巧部分，如果可以的话，我能否为此做出贡献？

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年五月26日 18:45 UTC](https://meta.discourse.org/t/cant-connect-new-installation-on-do/266144/6 "2023-05-26T18:45:16Z")

</div>

> [@kwest](#):
>
> I didn’t see any indication in the output that there was any problem with the domain or SSL; it’s possible there was an error reported and I just missed it

它会卡住。你不会错过的。我猜你巧妙地用 `/etc/hosts` 解决了问题，这满足了脚本，但没有让 Let’s Encrypt 在获取证书时成功。`discourse-setup` 是一个 shell 脚本，专为最不熟悉的用户设计，因此它的测试相当粗糙。

> [@kwest](#):
>
> Would it be possible to add a section to [discourse/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md) with Troubleshooting Tips, and if so, could I help contribute to that?

也许可以看看标准的安装主题？

编辑：嗯，那里没什么内容。

你想添加什么故障排除建议？我认为那里有一些线索。我猜有人会创建一个 `/etc/hosts` 条目并绕过 DNS 检查，这我从未听说过有人这样做过。 🙂
