Discourse 是个看似新颖其实有20多年历史的老牌论坛软件,国内用比较少而已,但好用是真的好用。
Discourse 由 StackExchange 创始人 Jeff Atwood 创建,是一个开源互联网论坛(又名在线留言板)和邮件列表管理软件,旨在彻底改变论坛讨论。它是用 Ember.js 和 Ruby on Rails 编写的,使用 PostgreSQL 作为后端数据库管理系统。
新版现在可以有AI支撑了哦~海外服务器上…
本来Docker安装很简单,但服务器挺破旧的,怕被Docker直接干死,只能试着学习网上跳过Docker,直接在Debian11上安装Discourse 论坛软件.
Discourse的特点:
- 无限滚动。线程中没有下一页。只需向下滚动即可阅读更多内容。
- 实时更新,拖放附件。
- 论坛主题可以按受欢迎程度进行排名。
- “最佳主题”视图可以显示特定主题的最佳回复。
- 能够记住您在线程中阅读的位置。
- 扩展 URL 以提供 URL 的摘要。
- 用户可以通过电子邮件回复。
- 标记系统会自动隐藏不适当的帖子,直到工作人员可以对其进行审核。
- 版主可以拆分、合并、本地化或存档任何主题。
- 根据信任级别,用户可以被提升为版主,或被降级为喷子、不良行为者或垃圾邮件发送者,以保持论坛文明。内置 Akismet 垃圾邮件防护和启发式方法,包括新用户沙箱、用户标志阻止和标准 nofollow。
- 徽章系统可以显示用户所取得的成就。
- 适合移动设备、响应式的网页设计。用户可以通过笔记本电脑、平板电脑和手机阅读或发帖。
- 100%免费开源。没有具有更好或更完整功能的付费商业版本。
- 单点登录。将 Discourse 与您现有站点的登录系统无缝集成。
- 社交登录。轻松添加常见的社交登录信息,例如 Google、Facebook、Twitter 等。
- 提供 iOS 和 Android 应用程序。
- 有 30 多种语言版本。
- 双因素身份验证,提高账户安全性。
- 还有很多。
为什么在 Debian 11 上安装 Discourse 而不使用 Docker
安装 Discourse 的官方方法是使用 Docker,这对于那些想要快速启动并运行应用程序的人来说非常有用。但 Docker 也非常消耗资源。试想一下:如果你已经启动并运行了 PostgreSQL 数据库服务器等组件,那么 Docker 方法仍然会在容器内运行单独的 PostgreSQL 数据库服务器,这会浪费服务器资源。您需要 2GB RAM 服务器才能使用 Docker 运行 Discourse。我将向您展示如何在没有 docker 的情况下在 1GB RAM 服务器上运行 Discourse。
先决条件
要运行 Discourse,您需要一台至少具有 1GB RAM 的服务器。如果您正在寻找虚拟专用服务器 (VPS),我推荐 Kamatera VPS,其特点:
- 30 天免费试用。
- 起价为 4 美元/月(1GB RAM)
- 基于KVM的高性能VPS
- 全球9个数据中心,包括美国、加拿大、英国、德国、荷兰、香港和以色列。
按照下面链接的教程在 Kamatera 创建 Linux VPS 服务器。
- 如何在 Kamatera 上创建 Linux VPS 服务器
一旦您拥有运行 Debian 11 的 VPS,请按照以下说明操作。
您还需要一个域名。我在 NameCheap 注册了我的域名,因为价格低,而且他们终身免费提供 whois 隐私保护。
注意:我在 Debian 11 上使用 sudo 用户安装了 Discourse。为了获得最佳效果,您还应该使用 sudo 用户而不是 root 用户来遵循本教程。
要添加 sudo 用户,只需运行
sudo adduser username
sudo adduser username sudo
然后切换到新用户。
su - username
第1步:配置PostgreSQL数据库服务器
通过 SSH 登录服务器,然后运行以下命令从上游存储库安装最新版本的 PostgreSQL。最新版本提供最佳性能。
echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo mkdir -p /etc/apt/keyrings
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/keyrings/postgresql.asc
sudo apt update
sudo apt install -y postgresql postgresql-contrib
PostgreSQL 数据库服务器将自动启动并监听 127.0.0.1:5432,如以下命令所示。
sudo ss -lnpt | grep postgres
如果您没有看到上述命令的任何输出,可能是因为 PostgreSQL 服务器未运行。您可以通过发出以下命令来启动 PostgreSQL 服务器。
sudo systemctl start postgresql
检查状态:
sudo systemctl status [email
示例输出:
[email - PostgreSQL Cluster 14-main
Loaded: loaded (/lib/systemd/system/[email ; enabled-runtime; vendor preset: enabled)
Active: active (running) since Wed 2022-06-01 08:03:16 EDT; 3 days ago
Main PID: 548 (postgres)
Tasks: 8 (limit: 2340)
Memory: 28.7M
CPU: 4s
postgres 用户将在安装过程中在操作系统上创建。它是 PostgreSQL 数据库服务器的超级用户。运行以下命令登录 PostgreSQL 控制台。
sudo -u postgres -i psql
为 Discourse 创建数据库:
CREATE DATABASE discourse;
创建数据库用户:
CREATE USER discourse_user;
为该用户设置密码
ALTER USER discourse_user WITH ENCRYPTED PASSWORD 'your_preferred_password';
将此用户设置为discourse数据库的所有者
ALTER DATABASE discourse OWNER TO discourse_user;
连接到话语数据库
\c discourse;
创建 hstore 和 pg_trgm 扩展
CREATE EXTENSION hstore;
CREATE EXTENSION pg_trgm;
从 PostgreSQL 控制台注销
\q
步骤 2:在 Debian 11 上安装 Ruby
Discourse 需要 Ruby 2.7 或更高版本,它包含在 Debian 11 存储库中,因此运行以下命令来安装它
sudo apt install ruby ruby-dev
要检查您的 Ruby 版本号,请运行
ruby -v
输出 :
ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux-gnu]
第 3 步:下载并配置 Discourse
安装git工具
sudo apt install git
创建 /var/www/ 目录(如果尚未创建)。
sudo mkdir -p /var/www/
让 www-data 用户作为该目录的所有者。
sudo chown www-data:www-data /var/www/ -R
从 Github 克隆 Discourse 代码存储库。
sudo -u www-data git clone https://github.com/discourse/discourse.git
更改目录并使用 Discourse 的最新稳定版本。您可以前往 Github 发布页面查看最新的稳定版本。我现在使用的是v2.8.3。
cd /var/www/discourse/
sudo -u www-data git checkout v2.8.3
安装捆绑程序:Ruby 依赖管理器。
sudo /usr/bin/gem install bundler
安装以下软件包来编译源代码。
sudo apt-get install -y gcc build-essential ruby-dev libxslt-dev libxml2-dev zlib1g-dev libpq-dev imagemagick
然后安装Discourse的依赖项。此过程可能会使用大量 RAM。
sudo -u www-data RAILS_ENV=production /usr/local/bin/bundle config set path '/var/www/discourse/vendor/bundle/'
sudo -u www-data RAILS_ENV=production /usr/local/bin/bundle install
将默认配置文件复制到新文件
sudo -u www-data cp config/discourse_defaults.conf config/discourse.conf
编辑新文件
sudo -u www-data nano config/discourse.conf
配置数据库连接
# host address for db server
# This is set to blank so it tries to use sockets first
db_host = localhost
# port running db server, no need to set it
db_port = 5432
# database name running discourse
db_name = discourse
# username accessing database
db_username = discourse_user
# password used to access the db
db_password = your_password
更改您的 Discourse 论坛使用的域名。
# hostname running the forum
hostname = "community.example.com"
保存并关闭文件。
第 4 步:获取免费的 MaxMind 许可证密钥
Discourse 带有内置的网络分析工具。如果您想了解访问者的地理信息,您需要 MaxMind 许可证密钥。
在 MaxMind 创建一个帐户。 Maxmind 会向您发送一封电子邮件。单击电子邮件中的链接设置密码,然后登录您的 MaxMind 帐户。接下来,选择左侧栏上的我的许可证密钥。
单击生成新许可证密钥按钮
为您的许可证密钥命名。然后选择否,因为我们不需要使用geoipupdate程序。然后点击确认按钮
创建许可证密钥后,复制许可证密钥。打开 Discourse 配置文件
sudo -u www-data nano config/discourse.conf
找到以下行并在此处添加您的许可证密钥
maxmind_license_key=
保存并关闭文件。
第五步:开始讨论
安装所需的软件包
sudo apt install redis-server optipng pngquant jhead jpegoptim gifsicle nodejs npm
sudo npm install -g svgo
编辑生产环境配置文件
sudo -u www-data nano /var/www/discourse/config/environments/production.rb
添加以下代码作为第五行
require 'uglifier'
然后找到以下行
config.assets.js_compressor = :uglifier
将其替换为:
config.assets.js_compressor = Uglifier.new(:harmony => true)
保存并关闭文件。然后运行以下命令来初始化数据库。如果您在此步骤中看到任何错误,只需再次运行该命令即可
sudo -u www-data RAILS_ENV=production /usr/local/bin/bundle exec rake db:migrate
接下来,我们将编译 JavaScript 等静态资源,但在此之前,我们需要编辑一个文件。
sudo -u www-data nano /var/www/discourse/lib/tasks/assets.rake
我们需要找到包含 brotli 的行并将其注释掉以禁用 Brotili 压缩,因为 JavaScript 文件将使用 Gzip 进行压缩。如果同时启用 Gzip 和 Brotili 压缩,则在编译资源时会出现一些恼人的错误。找到以下行(第 393 行)并将其注释掉。
brotli(path, max_compress)
保存并关闭文件。接下来,运行以下命令来编译资产。此过程可能会使用大量 RAM,例如 1GB
sudo -u www-data RAILS_ENV=production /usr/local/bin/bundle exec rake assets:precompile
如果您遇到“要使用 ES6 语法,必须启用和谐模式”错误,只需再次运行相同的命令即可继续
编译 JavaScript 和 CSS 文件后,您可以继续执行下一个命令。
接下来,编辑 puma.rb 文件
sudo -u www-data nano /var/www/discourse/config/puma.rb
找到以下行
APP_ROOT = '/home/discourse/discourse'
将应用程序路径更改为
APP_ROOT = '/var/www/discourse'
保存并关闭文件。然后创建套接字和进程 ID 目录
sudo -u www-data mkdir /var/www/discourse/tmp/sockets/ /var/www/discourse/tmp/pids/
开始论述
sudo -u www-data RAILS_ENV=production bundle exec puma -C /var/www/discourse/config/puma.rb
样本输出
[28348] Puma starting in cluster mode...
[28348] * Puma version: 5.5.2 (ruby 2.7.4-p191) ("Zawgyi")
[28348] * Min threads: 8
[28348] * Max threads: 32
[28348] * Environment: production
[28348] * Master PID: 28348
[28348] * Workers: 4
[28348] * Restarts: (✔) hot (✖) phased
[28348] * Preloading application
[28348] * Listening on unix:///var/www/discourse/tmp/sockets/puma.sock
[28348] ! WARNING: Detected 2 Thread(s) started in app boot:
[28348] ! #<Thread:0x000055ee3c26d998 /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-4.0.0/lib/message_bus.rb:720 sleep> - /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/redis-4.5.1/lib/redis/connection/ruby.rb:56:in `wait_readable'
[28348] ! #<Thread:0x000055ee3c26d790 /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-4.0.0/lib/message_bus/timer_thread.rb:38 sleep> - /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-4.0.0/lib/message_bus/timer_thread.rb:130:in `sleep'
[28348] Use Ctrl-C to stop
Discourse 正在 Unix 套接字上侦听:/var/www/discourse/tmp/sockets/puma.sock。按 Ctrl+C 立即停止。
第 6 步:为 Discourse 创建 Systemd 服务
我们可以为Discourse创建一个systemd服务,这样它就可以在系统启动时自动启动。
编辑 puma.rb 文件
sudo -u www-data nano /var/www/discourse/config/puma.rb
注释掉以下行(在每行开头添加 # 符号),因为 Systemd 将处理进程 ID
pidfile "#{APP_ROOT}/tmp/pids/puma.pid"
接下来,为 Discourse 创建一个 Systemd 服务
sudo nano /etc/systemd/system/discourse.service
在文件中添加以下行
[Unit]
Description=Discourse service
[Service]
Type=simple
User=www-data
PIDFile=/var/www/discourse/tmp/pids/puma.pid
WorkingDirectory=/var/www/discourse
Environment=RAILS_ENV=production
ExecStart=/usr/local/bin/bundle exec puma -C config/puma.rb
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
保存并关闭文件。然后启动并启用该服务
sudo systemctl enable --now discourse
检查状态。确保它正在运行
sudo systemctl status discourse
第7步:配置Nginx反向代理
从默认的 Debian 11 软件存储库安装 Nginx Web 服务器
sudo apt install -y nginx
复制示例 Nginx 虚拟主机配置文件
sudo cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
编辑新文件
sudo nano /etc/nginx/conf.d/discourse.conf
找到以下几行并将其注释掉,因为我们将使用 Puma
upstream discourse {
server unix:/var/www/discourse/tmp/sockets/nginx.http.sock;
server unix:/var/www/discourse/tmp/sockets/nginx.https.sock;
}
找到以下行并取消注释。
# upstream discourse {
# server unix:/var/www/discourse/tmp/sockets/puma.sock;
# }
找到以下行
server_name enter.your.web.hostname.here;
更改服务器名称。不要忘记为域名添加 DNS A 记录
server_name community.example.com;
Nginx 默认不支持 Brotli 压缩,因此注释掉以下行
brotli_static on;
保存并关闭文件。创建缓存目录
sudo mkdir -p /var/nginx/cache/
然后测试Nginx配置
sudo nginx -t
如果测试成功,请重新加载 Nginx 以使更改生效
sudo systemctl reload nginx
现在您应该能够在 http://community.example.com 上看到 Discourse 论坛。
步骤 8:启用 HTTPS
要加密 HTTP 流量,我们可以通过安装 Let’s Encrypt 颁发的免费 TLS 证书来启用 HTTPS。运行以下命令在 Debian 11 服务器上安装 Let’s Encrypt 客户端 (certbot)。
sudo apt install certbot python3-certbot-nginx
接下来,运行以下命令来获取并安装 TLS 证书
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d community.example.com
在哪里
- –nginx:使用nginx插件。
- –agree-tos:同意服务条款。
- –redirect:通过 301 重定向强制使用 HTTPS。
- –hsts:将 Strict-Transport-Security 标头添加到每个 HTTP 响应中。强制浏览器始终对域使用 TLS。防御 SSL/TLS 剥离。
- –staple-ocsp:启用 OCSP 装订。有效的 OCSP 响应将被粘贴到服务器在 TLS 期间提供的证书中。
现在应该已获取并自动安装证书。
您可以通过 HTTPS (https://community.example.com) 访问 Discourse 论坛。
如果 Firefox 在浏览器地址栏中显示黄色三角形,那是因为某些图像仍然通过 HTTP 协议提供。为了解决这个问题,你可以编辑Discourse Nginx配置文件。
sudo nano /etc/nginx/conf.d/discourse.conf
在 SSL 服务器块中添加以下行以升级不安全的请求
add_header Content-Security-Policy upgrade-insecure-requests;
保存并关闭文件。并重新加载Nginx。
sudo nginx -t
sudo systemctl reload nginx
第9步:创建管理员帐户
转到 discourse 目录 (/var/www/discourse/) 并运行以下命令来创建管理员帐户
cd /var/www/discourse/
sudo -u www-data RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create
系统将要求您输入管理员帐户的电子邮件地址和密码。
之后,重新启动 Discourse
sudo systemctl restart discourse
现在刷新 Discourse 网页,您就可以登录了。
如果您看到 502 bad gateway 错误,则说明重新启动命令未成功,您可以检查日志以找出问题所在
sudo journalctl -eu discourse
登录后,您可以启动设置向导。 (https://community.example.com/wizard) 并按照说明完成安装。如果您使用 Cloudflare CDN,则需要转到 设置 -> 安全 -> 内容安全策略 src 并添加以下 URL:https://community.example.com/cdn-cgi/
第 10 步:优化 RAM 使用
默认的 puma 配置使 Discourse 使用大量 RAM。默认情况下,我的 Discourse 使用 4 个工作线程、8 个最小线程、32 个最大线程。如果你的 RAM 不够,redis 服务器将会停止。要减少 RAM 使用量,您可以减少 puma.rb 文件中的工作线程和线程数量。
sudo -u www-data nano /var/www/discourse/config/puma.rb
找到以下两行
workers "#{num_workers}"
threads 8, 32
您可以更改如下值,它告诉 puma 使用 2 个工作线程、4 个最小线程和 16 个最大线程。此设置适用于只有 1GB RAM 的服务器
workers 2
threads 4, 16
保存并关闭文件。然后重新启动 Discourse 服务
sudo systemctl restart discourse
步骤11:配置后台处理服务:Sidekiq
Sidekiq 是一个开源作业调度程序。许多任务(例如发送电子邮件)都是由 sidekiq 异步执行的。编辑 sidekiq.yml 文件。
sudo -u www-data nano /var/www/discourse/config/sidekiq.yml
将以下行添加到文件末尾。此配置适用于用户活动和 RAM 较低的 Discourse 论坛。如果有大量用户活动,请考虑将并发度和队列数量加倍
production:
:concurrency: 2
:queues:
- [critical, 4]
- [default, 2]
- [low]
- [ultra_low]
保存并关闭文件。然后为sidekiq创建一个Systemd服务
sudo nano /etc/systemd/system/discourse-sidekiq.service
在文件中添加以下行
[Unit]
Description=Discourse sidekiq background processing service
After=multi-user.target
[Service]
Type=simple
User=www-data
PIDFile=/var/www/discourse/tmp/pids/sidekiq.pid
WorkingDirectory=/var/www/discourse
Environment=RAILS_ENV=production
ExecStart=/usr/local/bin/bundle exec sidekiq -C /var/www/discourse/config/sidekiq.yml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
保存并关闭文件。然后启动并启用该服务
sudo systemctl enable --now discourse-sidekiq
检查状态。确保它正在运行
sudo systemctl status discourse-sidekiq
Sidekiq 仪表板位于 https://community.example.com/sidekiq。
步骤 12:配置 SMTP
Discourse 需要发送电子邮件,以便访问者可以在您的论坛上注册帐户并接收通知。要编辑 SMTP 设置,请打开 discourse.conf 文件
sudo -u www-data nano /var/www/discourse/config/discourse.conf
您可以找到以下行来配置 SMTP 服务器。通常您会希望使用 587 作为 SMTP 端口
# address of smtp server used to send emails
smtp_address =
# port of smtp server used to send emails
smtp_port = 25
# domain passed to smtp server
smtp_domain =
# username for smtp server
smtp_user_name =
# password for smtp server
smtp_password =
# smtp authentication mechanism
smtp_authentication = plain
# enable TLS encryption for smtp connections
smtp_enable_start_tls = true
您可能还想在此文件中添加发件人:地址,如下所示
# From: address
notification_email = [email
如果您更喜欢使用第三方 SMTP 中继服务,那么我推荐 Sendinblue,它可以让您每月免费发送 9000 封电子邮件
- 如何使用 Sendinblue 在 Debian 上设置 Postfix SMTP 中继
保存 SMTP 设置后,重新启动 Discourse 服务
sudo systemctl restart discourse discourse-sidekiq
然后,您可以在 Discourse 管理仪表板中测试电子邮件发送。
您可以访问 mail-tester.com,它将为您提供一个唯一的电子邮件地址。从您的 Discourse 向此电子邮件地址发送一封测试电子邮件,以了解您的发件人分数。
无法发送电子邮件
如果您的 Discourse 实例不发送电子邮件,并且您在 Discourse 网页上看到以下消息:
All outgoing email has been globally disabled by an administrator. No email notifications of any kind will be sent.
您需要进入设置 -> 电子邮件(不是电子邮件),将禁用电子邮件设置为否。保存设置并重新启动 Discourse。
sudo systemctl restart discourse discourse-sidekiq
如果您的 Discourse 仍然无法发送电子邮件,请检查它是否可以 ping 通邮件服务器。另外,请访问https://community.example.com/sidekiq/retries,它会向您显示失败的电子邮件以及电子邮件发送失败的原因。
有时,discourse-sidekiq.service 可能会失败并导致电子邮件无法发送,因此您可能需要检查此服务是否正在运行
sudo systemctl status discourse-sidekiq
将 WordPress 与 Discourse 集成
如果您运行 WordPress 网站,则可以在 WordPress 网站上安装 WP Discourse 插件并将其与 Discourse 集成。它允许:
- 将帖子发布到 Discourse
- 使用 Discourse 进行 WordPress 评论
- 使用 WordPress 登录 Discourse (DiscourseConnect)
有关如何集成这两个软件的说明,请访问以下页面。
- WP Discourse 插件安装和设置
升级Discourse
您可以订阅 Discourse 版本的 RSS 源,以随时了解最新版本。在升级 Discourse 之前,我强烈建议在 Discourse 管理仪表板中进行手动数据库备份并将其下载到您的硬盘。
注意:如果您在没有 Docker 的情况下安装了 Discourse,则一键式浏览器升级 (https://community.yourdomain.com/admin/upgrade) 将不起作用。您需要按照以下说明进行操作。
要升级 Discourse,请先停止该服务。
sudo systemctl stop discourse
转到 Discourse 安装目录。
cd /var/www/discourse/
从 Github 存储库获取新标签。
git fetch --tags
在查看最新的稳定版本之前,我建议将配置文件备份到您的主目录
cp config/puma.rb ~
cp config/environments/production.rb ~
cp config/sidekiq.yml ~
cp config/discourse.conf ~
然后删除 Gemfile.lock 文件。
rm Gemfile.lock
并查看最新的稳定版本。例如:
git checkout v2.8.4
如果您看到以下错误消息
Please commit your changes or stash them before you switch branches.
Aborting
然后运行以下命令
git stash
然后再次运行 git checkout 命令。
安装新 Discourse 版本的依赖项。此过程可能会使用大量 RAM
RAILS_ENV=production /usr/local/bin/bundle install --path vendor/bundle/
编辑 asset.rake 文件
nano /var/www/discourse/lib/tasks/assets.rake
找到以下行(第 273 行)并将其注释掉
brotli(path, max_compress)
保存并关闭文件。接下来,运行以下命令来准备生产
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile
然后您可以检查新的 puma.rb 配置文件与原始文件相比是否添加了一些新行。如果没有任何新内容,那么您只需将文件替换为原始文件即可。
mv ~/puma.rb /var/www/discourse/config/puma.rb
mv ~/production.rb /var/www/discourse/config/environments/production.rb
mv ~/sidekiq.yml /var/www/discourse/config/sidekiq.yml
mv ~/discourse.conf /var/www/discourse/config/discourse.conf
最后,开始讨论
sudo systemctl start discourse
现在您可以从管理仪表板检查 Discourse 版本。
如何将Discourse转移到新服务器
Discourse具有强大的备份和恢复机制。
首先,备份原始 Discourse 论坛,然后下载 tar.gz 文件。 (请勿更改文件名。)
然后,您需要按照步骤1到步骤12在新服务器上安装Discourse。接下来,将备份文件上传到新服务器上的 /var/www/discourse/public/backups/default/ 目录。
转到新服务器上的 /var/www/discourse/ 目录。
cd /var/www/discourse/
安装依赖项
sudo gem install thor
sudo apt install rsync
转到 Discourse 管理仪表板 -> 设置 -> 备份,勾选允许恢复。
接下来,运行以下命令从备份恢复站点。
sudo -u www-data RAILS_ENV=production script/discourse restore file-name-of-the-backup-file.tar.gz
如果恢复成功,您应该在末尾看到以下消息
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[SUCCESS]
Restore done
恢复完成后,重新启动 Discourse
sudo systemctl restart discourse discourse-sidekiq
刷新 Discourse 网页,您将看到原来的 Discourse 论坛重新上线。
如果您看到以下错误
You must use Bundler 2 or greater with this lockfile.
然后你需要更新捆绑器
gem install bundler
更新 gemfile.lock
RAILS_ENV=production bundle update --bundler
您还可以删除 Gemfile.lock 文件,这样就不会看到此错误。
如何卸载话语
删除 PostgreSQL 数据库服务器
sudo apt remove postgresql
删除 webroot 目录
sudo rm /var/www/discourse/ -rf
删除 Nginx 配置文件
sudo rm /etc/nginx/conf.d/discourse.conf
删除 Let’s Encrypt SSL 证书
sudo certbot revoke --cert-name community.example.com
删除 SystemD 服务
sudo rm /etc/systemd/system/discourse.service
sudo rm /etc/systemd/system/discourse-sidekiq.service
监控您的对话实例的健康状况
您应该密切关注话语错误日志,您可以通过管理仪表板 -> 日志 -> 错误日志找到该日志。如果您的服务器获得大量流量,您可能需要更多 RAM 来运行 Discourse。以下日志显示我的服务器内存不足。
结论
我希望本文可以帮助您在 Debian 11 上安装 Discourse 论坛软件,而无需使用 Docker。与往常一样,如果您发现这篇文章有用,请订阅我们的免费时事通讯以获取更多提示和技巧。保重
本文转自网络:阅读原文
转到万事屋只为收藏学习~
没有回复内容