在CentOS 7上安装Discourse

话语是一种新的开放源代码论坛解决方案,它简单,干净,直接。它是通过Ruby on Rails,Postgres数据库和Redis服务器缓存实现的。本教程描述了如何使用CentOS 7在Vultr VPS上安装Discourse。

要求

  • 最低1GB RAM的Vultr VPS。
  • VPS上安装了CentOS 7 x64。

设置交换文件

您必须为1GB RAM VPS设置交换。如果您的VPS具有超过1GB的RAM,则可以跳过此步骤。我们将为1GB RAM VPS创建一个2GB交换文件。

  1. 创建交换文件。

    dd if=/dev/zero of=/swapfile bs=1M count=2048
    mkswap /swapfile
    chmod 600 /swapfile
    
  2. 编辑fstab以将交换文件添加到文件系统表中。

    用vi打开fstab:

    vi /etc/fstab
    

    将以下行添加到文件中:

    /swapfile       swap    swap    defaults      0       0
    
  3. 设置交换使用策略。仅在系统内存不足时使用交换文件。

    sysctl -w vm.swappiness=10
    echo vm.swappiness = 10 | tee -a /etc/sysctl.conf
    sysctl vm.vfs_cache_pressure=60
    echo vm.vfs_cache_pressure = 60 | tee -a /etc/sysctl.conf
    
  4. 启用交换文件。

    mount -a
    swapon -a
    
  5. 检查交换文件状态。

    swapon -s
    

    如果交换文件已启用,您将看到以下信息。

    Filename                    Type    Size    Used    Priority
    /swapfile                  file     2097148 0       -1
    

安装Docker

运行以下命令以在CentOS 7上安装Docker。

yum install docker

如果您已禁用SELinux,则最好也在docker中禁用它。

vi /etc/sysconfig/docker

注释掉第4行。

#OPTIONS='--selinux-enabled'

启动docker服务

systemctl start docker
systemctl enable docker

请注意,如果重新启动firewalld,则还需要重新启动docker。因为firewalld在重新启动时会从iptables中删除docker链。

安装话语

创建一个名为的文件夹discourse/var并克隆Discourse存储库。

mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

转到discourse文件夹。

cd /var/discourse

将Discourse配置模板文件复制到container文件夹中。

cp samples/standalone.yml containers/app.yml

配置话语

  1. app.yml用vi 打开。

     vi containers/app.yml
    
  2. 如果您使用的是1GB VPS,请在中将db共享缓冲区设置为128MB app.yml

    db_shared_buffers: "128MB"
    
  3. UNICORN_WORKERS对于1GB RAM实例,更改为2。

    ## With 2GB we recommend 3-4 workers, with 1GB only 2
    UNICORN_WORKERS: 2
    
  4. 设置您的管理员帐户的电子邮件地址。您将需要此电子邮件在您的Discourse论坛上注册管理员帐户。

    DISCOURSE_DEVELOPER_EMAILS: 'you@youremail.com'
    
  5. 设置Discourse的域名。例如,我们将其设置为discourse.example.com,这意味着可以通过URL进行访问http://discourse.example.com/

    ## TODO: The domain name this Discourse instance will respond to
    DISCOURSE_HOSTNAME: 'discourse.example.com'
    
  6. 为Discourse配置邮件服务器。

    如果您的邮件服务器与Discourse在同一台服务器上,请按以下方式进行配置。

    DISCOURSE_SMTP_ADDRESS: smtp.example.com                               # (mandatory)
    DISCOURSE_SMTP_PORT: 587                                                              # (optional)
    DISCOURSE_SMTP_USER_NAME: YOUR_EMAIL_ACCOUNT                # (optional)
    DISCOURSE_SMTP_PASSWORD: YOURPASSWORD                             # (optional)
    DISCOURSE_SMTP_ENABLE_START_TLS: flase                                    # (optional, default true)
    DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
    

    如果您使用远程SMTP服务器,请进行app.yml如下编辑。

    DISCOURSE_SMTP_ADDRESS: smtp.example.com                               # (mandatory)
    DISCOURSE_SMTP_PORT: 587                                                              # (optional)
    DISCOURSE_SMTP_USER_NAME: your@example.com                          # (optional)
    DISCOURSE_SMTP_PASSWORD: YOURPASSWORD                             # (optional)
    DISCOURSE_SMTP_ENABLE_START_TLS: true                                     # (optional, default true)
    
  7. 保存并退出app.yml

引导并启动话语

运行以下命令以引导语篇。

./launcher bootstrap app

自举过程完成后,启动Discourse。

./launcher start app

在浏览器中打开Discourse

在您的客户端PC上,输入您为Discourse配置的域名app.yml。您将看到自己的Discourse实例。

故障排除

  • 默认情况下,Docker将侦听端口80。如果Nginx或Apache已经使用了端口80,则需要将该服务移至另一个端口;否则,端口将被侦听。或将Docker更改为另一个端口。例如,将“ 80:80”更改为“ 8080:80”,app.yml以使Docker在端口8080上侦听。
  • 在1GB RAM VPS上,可能无法将Discourse更新到新版本,并且在访问Discourse时会看到“ 502 Bad Gateway”。解决此问题的简单方法是运行./launcher rebuild app以重建您的Discourse实例。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息