如何在 CentOS 7 上安装 Mattermost

在本教程中,我们将向您展示如何在 CentOS 7 服务器上安装和配置 Mattermost。 对于那些不知道的人,Mattermost 是一个开源的私有云 Slack 替代方案。 在 MIT 许可下发布的用于 Web、PC 和电话的工作场所消息传递系统。

作为专有 SaaS 消息传递的替代方案,Mattermost 将您的所有团队通信集中到一个地方,使其可在任何地方搜索和访问。 Mattermost 是“兼容 Slack,而不是 Slack 限制”,支持 Slack 传入和传出 webhook 集成的超集,包括与现有 Slack 集成的兼容性。 从您现有的 Slack 团队中,您可以将用户、公共频道历史记录,甚至主题设置颜色导入 Mattermost。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在 CentOS 7 服务器上逐步安装 Mattermost。

先决条件

  • 运行以下操作系统之一的服务器:CentOS 7。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
  • 一种 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

在 CentOS 7 上安装 Mattermost

第 1 步。首先,让我们首先确保您的系统是最新的。

yum clean all yum -y update

步骤 2. 安装 MySQL 数据库。

安装和设置数据库供 Mattermost 服务器使用。 您可以使用以下命令安装 MySQL:

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm yum localinstall mysql57-community-release-el7-9.noarch.rpm

接下来,安装 MySQL:

sudo yum install mysql-community-server

启动 MySQL 服务器:

systemctl start mysqld.service chkconfig mysqld on

为 SugarCRM 配置 MySQL。

默认情况下,MySQL 未加固。 您可以使用 mysql_secure_installation 脚本。 您应该仔细阅读下面的每个步骤,这些步骤将设置 root 密码、删除匿名用户、禁止远程 root 登录、删除测试数据库和访问安全 MySQL:

mysql_secure_installation

像这样配置它:

- Set root password? [Y/n] y - 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

接下来,我们需要登录 MySQL 控制台并为 Mattermost 创建一个数据库。 运行以下命令:

mysql -u root -p

这将提示您输入密码,因此输入您的 MariaDB 根密码并点击 Enter. 登录到数据库服务器后,您需要为 Mattermost 安装创建一个数据库:

mysql> CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'mmuser_strong_password'; mysql> CREATE DATABASE mattermostdb; mysql> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mmuser'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> EXIT;

步骤 3. 安装 Mattermost 服务器。

首先要做的就是去 Mattermost 的下载页面 并下载最新的 Mattermost 稳定版,在撰写本文时它是 3.6.2 版:

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

将 Mattermost 存档解压缩到服务器上的文档根目录:

tar xf *.gz mv mattermost /opt/

创建文件的存储目录:

mkdir /opt/mattermost/data

设置一个名为 Mattermost 的系统用户和组来运行此服务,并设置所有权和权限:

useradd --system --user-group mattermost chown -R mattermost:mattermost /opt/mattermost chmod -R g+w /opt/mattermost

通过设置数据库驱动程序 /opt/mattermost/config/config.json 文件。 在其中,搜索“DriverName”和“DataSource”行并将它们更改如下:

"DriverName": "mysql" "DataSource": "mmuser:@tcp(localhost:3306)/mattermost?charset=utf8"

Save,退出并使用以下命令测试 Mattermost 服务器:

sudo -u mattermost /opt/mattermost/bin/platform

当服务器启动时,它会显示一些日志信息和文本服务器正在侦听 8065。您可以通过在终端窗口中按 CTRL+C 来停止服务器。

步骤 4. 创建一个 systemd Mattermost 的单位。

创建一个 systemd 最重要的文件, /etc/systemd/system/mattermost.service 并在其中粘贴以下配置:

[Unit] Description=Mattermost After=syslog.target network.target postgresql-9.4.service  [Service] Type=simple WorkingDirectory=/opt/mattermost/bin User=mattermost ExecStart=/opt/mattermost/bin/platform PIDFile=/var/spool/mattermost/pid/master.pid LimitNOFILE=49152  [Install] WantedBy=multi-user.target

使服务可执行:

chmod 664 /etc/systemd/system/mattermost.service

并重新加载服务:

systemctl daemon-reload

启用 Mattermost 服务:

chkconfig mattermost on

然后开始 systemd

systemctl start mattermost

步骤 5. 安装和配置 NGINX。

在生产系统中,在 Mattermost Server 前面使用代理服务器。 在这种情况下,NGINX。 这样做的主要好处是:

  • SSL 终止
  • 端口映射:80到8065
  • HTTP 到 HTTPS 重定向
  • 标准请求日志

为了在 CentOS 7 上安装 NGINX,创建一个 yum 存储库文件, /etc/yum.repos.d/nginx.repo,内容如下:

[nginx] name=nginx repo baseurl=https://nginx.org/packages/rhel/7.1/$basearch/ gpgcheck=0 enabled=1

使用安装 Nginx yum 命令:

yum install nginx.x86_64

安装完成后,启动NGINX:

systemctl start nginx systemctl enable nginx

配置 Nginx。

为了将 NGINX 配置为代理服务器,请创建文件 /etc/nginx/sites-available/mattermost 和过去:

upstream backend {    server localhost:8065; }  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.mydomain.com;     location /api/v3/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;        proxy_read_timeout 600s;        proxy_pass https://backend;    }     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_pass https://backend;    } }

删除现有的默认启用站点的文件:

rm /etc/nginx/sites-enabled/default

启用最重要的配置:

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost

最后重启Nginx服务:

systemctl restart nginx

步骤 7. 访问 Mattermost。

默认情况下,Mattermost 将在 HTTP 端口 80 上可用。 打开您喜欢的浏览器并导航到 https://mattermost.mydomain.com/ 并通过输入电子邮件地址和创建帐户继续配置 Mattermost。 如果您使用防火墙,请打开端口 80 以启用对控制面板的访问。

恭喜! 您已成功安装 Mattermost。 感谢您使用本教程在 CentOS 7 系统上安装 Mattermost。 如需其他帮助或有用信息,我们建议您查看 Mattermost 官方网站.

Save