解决安装问题Port 80/443 not accessible while installing Discourse

在安装 Discourse 时,如果遇到“Port 80/443 not accessible”问题,通常意味着服务器的端口 80(HTTP)或 443(HTTPS)已被其他服务占用,或未正确配置。以下是解决此问题的步骤:

1. 检查端口占用情况

  • 使用以下命令查看端口是否被其他进程占用:
sudo lsof -i :80
sudo lsof -i :443
  • 如果有其他服务占用了这些端口,您可以选择停止这些服务或更改其端口配置。

2. 停止相关服务

  • 如果发现例如 Apache 或 Nginx 占用了端口 80 或 443,您可以通过以下命令停止它们:
sudo systemctl stop apache2
sudo systemctl stop nginx
  • 确认服务已停止后,重新尝试安装 Discourse。

3. 防火墙配置

  • 确保防火墙允许端口 80 和 443 的流量。可以使用以下命令检查和打开这些端口:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
  • 确保防火墙规则不会阻止对这些端口的访问。

4. 确认域名解析

  • 确保您的域名正确解析到服务器的 IP 地址,且 DNS 配置无误。您可以使用 dignslookup 工具来检查域名解析情况。
  • 如果域名未正确解析,您可能会遇到端口不可访问的问题。

5. 重新启动服务器

  • 在进行上述配置后,重新启动服务器,以确保所有更改生效:
sudo reboot
  • 重启后再次尝试安装 Discourse。

6. 检查 Docker 设置

  • 如果您在 Docker 内安装 Discourse,确保 Docker 容器正确映射了端口 80 和 443。可以检查 app.yml 文件的配置,确保有以下内容:
expose:
  - "80:80"
  - "443:443"
  • 如果映射有误,可以手动修改并重新启动容器。

通过这些步骤,您应该能够解决“Port 80/443 not accessible”问题,并顺利安装 Discourse。

1 个赞

当以上问题都检查过,如果仍然有问题的话,大概率是因为用了Docker安装方式,在检查网络的这一步过不了,可以用以下方法解决(加上参数skip-connection-test),问题就会得到解决!

–skip-connection-test

运行如下完整的命令:

./discourse-setup --skip-connection-test
1 个赞