如何在 CentOS 8 上安装和配置 Mattermost如何在 CentOS 8 上安装和配置 Mattermost如何在 CentOS 8 上安装和配置 Mattermost如何在 CentOS 8 上安装和配置 Mattermost
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 8 上安装和配置 Mattermost

在此页

  1. 先决条件
  2. 安装和配置 MariaDB 数据库
  3. 安装 Mattermost
  4. 配置 Mattermost
  5. 为 Mattermost 创建一个 Systemd 服务文件
  6. 将 Nginx 配置为 Mattermost 的反向代理
  7. 配置 SELinux 和 Firewalld
  8. 访问 Mattermost 网络界面
  9. 结论

Mattermost 是一个免费、开源和自托管的企业团队协作消息传递系统。它使用 Golang 和 React 编写,并使用 MySQL/MariaDB/PostgreSQL 作为数据库后端。它为 Windows、macOS 和 Linux 提供桌面客户端,为 iOS 和 Android 提供移动应用程序。它与 Slack 非常相似,将您所有的团队沟通集中在一个地方。它提供了非常有用的功能,包括一对一和群组消息传递、文件共享、视频通话、自定义表情符号、网络钩子和命令等等。

在本教程中,我们将向您展示如何在 CentOS 8 上安装 Mattermost。

先决条件

  • 一台运行 CentOS 8 的服务器。
  • 在您的服务器上配置了根密码。

安装和配置 MariaDB 数据库

Mattermost 使用 MariaDB/MySQL 作为数据库后端。所以你的服务器上必须安装 MariaDB。如果没有安装,可以使用以下命令安装:

dnf install mariadb-server -y

安装后,启动 MariaDB 服务并使用以下命令使其在系统重启后启动:

systemctl start mariadb
systemctl enable mariadb

默认情况下,MariaDB 是不安全的,在 CentOS 8 中没有设置 root 密码。所以你可以使用以下命令设置它:

mysql_secure_installation

如下图所示回答所有问题:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

完成后,使用 root 用户登录 MariaDB:

mysql -u root -p

提供您的 root 密码,然后使用以下命令为 Mattermost 创建数据库和用户:

MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO IDENTIFIED BY 'password';

接下来,使用以下命令刷新权限并退出 MariaDB shell:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

完成后,您可以继续下一步。

安装 Mattermost

首先,您需要创建一个单独的用户来运行 Mattermost。您可以使用以下命令创建它:

useradd -d /opt/mattermost -U -M mattermost

接下来,使用以下命令下载最新版本的 Mattermost:

wget https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz

下载完成后,使用以下命令解压缩下载的文件:

tar -xvzf mattermost-5.21.0-linux-amd64.tar.gz

接下来,使用以下命令将提取的目录移动到 /opt:

mv mattermost /opt/

接下来,在 mattermost 中创建一个数据目录,并使用以下命令为 mattermost 授予适当的权限:

mkdir /opt/mattermost/data
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

完成后,您可以继续下一步。

配置最重要

接下来,您需要在 Mattermost 中定义您的数据库。您可以通过编辑文件 config.json 来完成此操作:

nano /opt/mattermost/config/config.json

根据您的数据库设置更改以下行:

  "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:(localhost:3306)/mattermostdb?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

完成后保存并关闭文件。然后,将目录更改为 /opt/mattermost 并使用以下命令启动 Mattermost 服务器:

cd /opt/mattermost
sudo -u mattermost bin/mattermost

服务器成功启动后,您应该获得以下输出:

{"level":"info","ts":1585379681.8383002,"caller":"utils/i18n.go:83","msg":"Loaded system translations","for locale":"en","from locale":"/opt/mattermost/i18n/en.json"}
{"level":"info","ts":1585379681.83874,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."}
{"level":"info","ts":1585379681.8470004,"caller":"sqlstore/supplier.go:221","msg":"Pinging SQL","database":"master"}
{"level":"info","ts":1585379684.7858346,"caller":"sqlstore/upgrade.go:112","msg":"The database schema version has been set","version":"5.21.0"}
{"level":"error","ts":1585379690.8182986,"caller":"app/server_app_adapters.go:129","msg":"SiteURL must be set. Some features will operate incorrectly if the SiteURL is not set. See documentation for details: http://about.mattermost.com/default-site-url"}
{"level":"info","ts":1585379690.821083,"caller":"app/license.go:39","msg":"License key from https://mattermost.com required to unlock enterprise features."}

接下来,按 CTRL + C 停止 Mattermost 服务器。

为 Mattermost 创建系统服务文件

接下来,您需要创建一个 systemd 服务文件来管理 Mattermost 服务。您可以使用以下命令创建它:

nano /etc/systemd/system/mattermost.service

添加以下行:

[Unit]
Description=Mattermost
After=syslog.target network.target mariadb.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/run/mattermost.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

完成后保存并关闭文件。然后,使用以下命令重新加载 systemd 守护进程:

systemctl daemon-reload

接下来,启动 Mattermost 服务并使用以下命令使其在系统重启后启动:

systemctl start mattermost
systemctl enable mattermost

您还可以使用以下命令验证 Mattermost 服务的状态:

systemctl status mattermost

您应该得到以下输出:

? mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-03-28 03:17:07 EDT; 14s ago
 Main PID: 15204 (mattermost)
    Tasks: 21 (limit: 25028)
   Memory: 120.8M
   CGroup: /system.slice/mattermost.service
           ??15204 /opt/mattermost/bin/mattermost
           ??15214 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131086,"caller":"app/server.go:247","msg":"Printing current workin>
Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131282,"caller":"app/server.go:248","msg":"Loaded config","source">

此时,Mattermost 服务器正在运行并侦听端口 8065。您可以使用以下命令进行检查:

netstat -antup | grep 8065

您应该得到以下输出:

tcp6       0      0 :::8065                 :::*                    LISTEN      15204/mattermost 

将 Nginx 配置为 Mattermost 的反向代理

安装和配置 Nginx 作为反向代理是一个好主意,以获得更好的性能和安全性。

首先,使用以下命令安装 Nginx Web 服务器:

dnf install nginx -y

安装好Nginx web服务器后,启动Nginx服务,并使用以下命令使其在系统重启后启动:

systemctl start nginx
systemctl enable nginx

接下来,使用以下命令为 Mattermost 创建一个新的 Nginx 虚拟主机文件:

nano /etc/nginx/conf.d/mattermost.conf

添加以下行:

upstream mattermost {
   server 127.0.0.1:8065;
   keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen 80;
   server_name    mattermost.example.com;

   location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://mattermost;
   }
   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://mattermost;
   }
}

完成后保存并关闭文件。然后,使用以下命令检查 Nginx 是否有任何语法错误:

nginx -t

您应该得到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,重启 Nginx 服务以应用更改:

systemctl restart nginx

此时,Nginx Web 服务器已配置为服务 Mattermost。您现在可以继续下一步。

配置 SELinux 和 Firewalld

CentOS 8 默认开启 SELinux,Mattermost 建议关闭。您可以通过编辑 /etc/selinux/config 文件来禁用它:

nano /etc/selinux/config

找到以下行:

SELINUX=enforcing

并且,将其替换为以下行:

SELINUX=permissive

完成后保存并关闭文件。然后,重新启动系统以应用更改。

接下来,您需要通过 firewalld 允许端口 80。您可以使用以下命令允许它:

firewall-cmd --add-service=http --permanent

接下来,重新加载 firewalld 以应用更改:

firewall-cmd --reload

访问 Mattermost Web 界面

现在,打开您的 Web 浏览器并输入 URL http://mattermost.example.com。您应该会看到 Mattermost 用户创建页面:

提供您的电子邮件地址、用户名、密码,然后单击“创建帐户”按钮。您应该会看到以下页面:

接下来,单击“创建新团队”以创建您的团队。您应该会看到以下页面:

提供您的团队名称,然后单击“下一步”按钮。您应该会看到以下页面:

提供您的团队 URL,然后单击“完成”以完成安装。您应该在以下页面中看到 Mattermost 仪表板:

结论

恭喜!您已经在 CentOS 8 服务器上成功安装和配置了 Mattermost。您现在可以为您的组织创建一个团队并开始与您的团队协作。

©2015-2025 艾丽卡 support@alaica.com