kwest
2023 年5 月 25 日 05:05
1
我刚刚尝试了两次在 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 。)
然后我按 Enter 键继续安装 Docker。
之后,安装似乎运行正常。
它以以下内容结束:
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 上的说明,使用 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
显示
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 地址访问。)
感谢任何帮助。
kwest
2023 年5 月 25 日 05:19
2
还有一些细节:
据我所知,我没有任何控制面板来管理我的任何一个 droplet(没有 Plesk,也没有 cPanel)。
在典型的共享主机设置中,我通常会进入 public_html 并创建一个简单的测试文件,例如 testfile.html,看看是否至少能加载一个纯 HTML 文件,但在 DO droplet 上,我不知道在哪里可以这样做(或者是否可以这样做)。
Canapin
(Coin-coin le Canapin)
2023 年5 月 25 日 10:15
3
如果 ./discourse-setup 运行顺利,那么它应该已经能够解析您的域名了,所以您无需再进行任何操作。此时,DNS 传播对您的服务器来说已经完成了。
请注意,一键安装的 Digital Ocean Discourse 是一个 unsupported-install ,这意味着您在这里获得支持的可能性较小。
我建议您从头开始,并使用标准安装。
创建一个液滴 (droplet)
通过 SSH 登录
运行 ping yourdomain.com 并查看它是否解析到您的服务器 IP(无论如何 ./discourse-setup 都会显示警告,如果未解析)。
解析成功后,使用官方指南安装 Discourse discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
请反馈结果
当然,我不是专家,也许有人能够指出您当前的问题。
2 个赞
pfaffman
(Jay Pfaffman)
2023 年5 月 25 日 10:31
4
没有必要这样做,这样做也没有帮助。如上所述,discourse-setup 会进行测试,以查看它是否可以使用主机名与自身通信。如果您在运行 discourse setup 之前编辑了 /etc/hosts 文件,那么 DNS 就无法工作,您也无法从 let’s encrypt 获取证书,这就是为什么 Web 服务器无法启动的原因。如果您尝试的次数足够多,您将被限制速率,需要等待一周或使用不同的子域。
您可以查看 /var/discourse/shared/logs/var-log/nginx/access.log(或非常相似的文件)来查看问题。
此时最简单的方法是使用新的子域,设置 DNS,等待其传播(有一些工具可以显示它),然后运行 discourse-setup。
2 个赞
kwest
2023 年5 月 26 日 03:30
5
感谢你们两位的回复。
我创建了一个新的子域名和一个新的 Droplet,并用它们进行了第三次尝试,现在一切都已启动并运行。
在我第一次尝试运行 ./discourse-setup 时,输出中没有显示任何关于域名或 SSL 问题的迹象;有可能报告了错误但我错过了,但如果是这样,也许可以使这类错误通知更加明显。
我很高兴我的新 Discourse 已设置并运行。再次感谢帮助新手。
是否有可能在 discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub 中添加一个故障排除技巧部分,如果可以的话,我能否为此做出贡献?
1 个赞
pfaffman
(Jay Pfaffman)
2023 年5 月 26 日 18:45
6
它会卡住。你不会错过的。我猜你巧妙地用 /etc/hosts 解决了问题,这满足了脚本,但没有让 Let’s Encrypt 在获取证书时成功。discourse-setup 是一个 shell 脚本,专为最不熟悉的用户设计,因此它的测试相当粗糙。
也许可以看看标准的安装主题?
编辑:嗯,那里没什么内容。
你想添加什么故障排除建议?我认为那里有一些线索。我猜有人会创建一个 /etc/hosts 条目并绕过 DNS 检查,这我从未听说过有人这样做过。