在本教程中,我們將向您展示如何在 Rocky Linux 9 上安裝 Discourse。對於那些不知道的人來說,Discourse 是一個強大的在線討論和論壇平台,是想要培養的社區和組織的絕佳選擇引人入勝且富有成效的討論。 Discourse 是用 Ruby on Rails 編寫的,使用現代網絡架構,包括實時更新、移動友好的設計和復雜的 API。 它是高度可定制的,並提供一系列旨在使在線討論引人入勝、富有成效且易於訪問的功能。
本文假定您至少具有 Linux 的基本知識,知道如何使用 shell,最重要的是,您在自己的 VPS 上託管您的站點。 安裝非常簡單,假設您在 root 帳戶下運行,如果不是,您可能需要添加 ‘sudo
‘ 到獲取 root 權限的命令。 我將向您展示在 Rocky Linux 上逐步安裝 Discourse 開源社區討論平台。 9.
先決條件
- 運行以下操作系統之一的服務器: 洛基Linux 9.
- 建議您使用全新的操作系統安裝,以防止出現任何潛在問題。
- 通過 SSH 訪問服務器(如果您在桌面上,則只需打開終端)。
- 有效的互聯網連接。 您需要互聯網連接才能下載 Discourse 所需的包和依賴項。
- 一種
non-root sudo user
或訪問root user
. 我們建議充當non-root sudo user
,但是,如果您在充當根用戶時不小心,可能會損害您的系統。
在 Rocky Linux 9 上安裝 Discourse
步驟 1. 第一步是將您的系統更新到最新版本的軟件包列表。 為此,請運行以下命令:
sudo dnf check-update sudo dnf install dnf-utils epel-release
步驟 2. 安裝 Git。
默認情況下,Git 在 Rocky Linux 9 AppStream 存儲庫上可用。 現在運行下面的命令,將穩定版的 Git 安裝到你的系統中:
sudo dnf install git
您可以使用以下命令驗證安裝的版本:
git --version
現在我們設置標准設置,例如名稱和電子郵件,主要圍繞 git 提交消息:
git config --global user.name "idroot" git config --global user.email "[email protected]"
要驗證您的姓名和電子郵件是否已配置:
git config --list
有關安裝 Git 的其他資源,請閱讀以下帖子:
- 如何在 Rocky Linux 上安裝 Git √
步驟 3. 安裝 Docker。
默認情況下,Docker 在 Rocky Linux 9 基礎存儲庫上不可用。 現在運行以下命令將 Docker CE 存儲庫添加到您的系統:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
將存儲庫添加到系統後,現在運行以下命令來安裝 Docker CE Rocky Linux:
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing
安裝完成後,在您的 Rocky Linux 上啟動 Docker 服務,並使其在系統啟動時自動運行:
sudo systemctl enable docker sudo systemctl start docker
接下來,使用以下命令將用戶添加到 Docker 組:
sudo usermod -aG docker $USER
然後,創建一個新組:
newgrp docker
驗證是否安裝了 Docker 版本:
docker version
有關安裝 Docker 的其他資源,請閱讀以下帖子:
- 如何在 Rocky Linux 上安裝 Docker √
步驟 3. 下載 Discourse。
首先,我們將官方的 Discourse Docker GitHub 倉庫克隆到 /var/discourse
目錄:
sudo git clone https://github.com/discourse/discourse_docker.git /var/discourse
接下來,切換到 Discourse 目錄並從中刪除寫入和可執行權限 containers
目錄:
cd /var/discourse sudo chmod 700 containers
步驟 4. 配置 Discourse。
下載 Discourse Docker 鏡像後,下一步就是配置它。 您可以通過編輯 containers/app.yml
文件。 這是一個 example 如何配置文件:
cp samples/standalone.yml containers/app.yml nano containers/app.yml
設置變量 DISCOURSE_HOSTNAME
到域名:
DISCOURSE_HOSTNAME: 'your-domain.com'
換線 "80:80
到 "8080:80"
. 這會將 Discourse 的外部 HTTP 端口更改為 8080,因為我們將在端口 80 使用 Nginx。註釋掉 "443:443"
:
expose: - "8080:80" # http #- "443:443" # https
為您的管理員設置電子郵件:
DISCOURSE_DEVELOPER_EMAILS: '[email protected],[email protected]'
設置 SMTP 設置:
ISCOURSE_SMTP_ADDRESS: smtp.your-domain.com DISCOURSE_SMTP_PORT: 587 DISCOURSE_SMTP_USER_NAME: [email protected] DISCOURSE_SMTP_PASSWORD: your-strong-smtp-password #DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true) DISCOURSE_SMTP_DOMAIN: your-domain.com # (required by some providers) DISCOURSE_NOTIFICATION_EMAIL: n[email protected] # (address to send notifications from)
步驟 5. 在 Rocky Linux 9 上安裝 Discourse。
配置文件設置完成後,我們可以使用以下命令啟動Discourse:
sudo ./launcher bootstrap app
啟動 Discourse 應用程序:
sudo ./launcher start app
步驟 6. 為 Discourse 安裝和配置 Nginx。
默認情況下,Nginx 在 Rocky Linux 9 基礎存儲庫中不可用。 現在運行以下命令將 Nginx 穩定存儲庫添加到您的系統:
sudo tee /etc/yum.repos.d/nginx-stable.repo<<EOF [nginx-stable] name=nginx stable repo baseurl=https://nginx.org/packages/centos/9/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true EOF
現在,運行以下命令將最新穩定版本的 Nginx 安裝到您的服務器:
sudo dnf update sudo dnf install nginx
安裝完成後,啟動 Nginx 服務並使其在重啟時自動啟動:
sudo systemctl enable --now nginx
要驗證是否已安裝最新版本的 Nginx,請運行:
nginx -v
這是一個 example 如何配置 Nginx 來服務 Discourse:
nano /etc/nginx/conf.d/discourse.conf
添加以下文件:
# enforce HTTPS server { listen 80; listen [::]:80; server_name discourse.example.com; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name discourse.example.com; access_log /var/log/nginx/discourse.access.log; error_log /var/log/nginx/discourse.error.log; http2_push_preload on; # Enable HTTP/2 Server Push # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to # prevent replay attacks. # # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data on; # Security / XSS Mitigation Headers # NOTE: X-Frame-Options may cause issues with the webOS app add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; add_header X-Early-Data $tls1_3_early_data; client_max_body_size 100m; location / { proxy_pass https://your-domain.com:8080/; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } # This block is useful for debugging TLS v1.3. Please feel free to remove this # and use the `$ssl_early_data` variable exposed by NGINX directly should you # wish to do so. map $ssl_early_data $tls1_3_early_data { "~." $ssl_early_data; default ""; }
Save 和 close 該文件,然後重新啟動 Nginx 服務以啟用新配置:
sudo systemctl restart nginx
有關安裝 Nginx 的其他資源,請閱讀以下帖子:
- 如何在 Rocky Linux 上安裝 Nginx √
步驟 7. 安全對話 Let’s Encrypt SSL。
首先,使用以下命令安裝 Certbot 客戶端:
sudo dnf install certbot python3-certbot-nginx
接下來,獲取您的 SSL 證書 Let’s Encrypt 通過執行以下步驟:
sudo certbot --nginx -d your-domain.com
Let’s Encrypt 證書的有效期為 90 天,強烈建議在證書過期之前續訂證書。 您可以通過運行以下命令來測試證書的自動續訂:
sudo certbot renew --dry-run
步驟 8. 配置防火牆。
默認情況下,Nginx 偵聽端口 80 和 443。如果您的服務器上安裝並配置了任何防火牆,那麼您將需要通過 firewalld 允許這兩個端口。 您可以使用以下命令允許它們:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload
您可以通過列出當前的防火牆設置來驗證:
sudo firewall-cmd --permanent --list-all
第 9 步。訪問 Discourse Web 界面。
成功安裝後,打開您的網絡瀏覽器並使用 URL 訪問 Discourse Web UI https://.your-domain.com
. 您應該會看到以下頁面:
恭喜! 您已經成功安裝了 Discourse。 感謝您使用本教程在您的 Rocky Linux 9 系統上安裝 Discourse 討論平台。 如需更多幫助或有用信息,我們建議您查看 官方話語網站.