怎样在 RHEL 7.1 上安装 Mattermost

介绍

Mattermost 是一个开源的私有云 Slack 替代方案。 在 MIT 许可下发布的用于网络、PC 和电话的工作场所消息传递系统。
在之前的教程中,我们讨论了怎样在 Ubuntu 16.04 上安装它。
现在,让我们看看怎样在使用 MySQL 作为数据库的 RHEL 7.1 机器上安装和配置 Mattermost。

安装数据库

在服务器上,执行以下命令下载 MySQL 5.7:

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

并从该文件安装 yum 存储库:

# yum localinstall mysql57-community-release-el7-9.noarch.rpm

接下来,安装 MySQL:

# yum install mysql-community-server

并启动它:

# systemctl start mysqld

第一次执行此命令后,MySQL 会为 root 帐户生成一个临时密码。 要检索它,只需:

# grep 'temporary password' /var/log/mysqld.log

此命令将输出如下内容:

2017-03-02T08:21:27.969295Z 1 [Note] A temporary password is generated for [email protected]: Ed4SxpDyuH(y

更改根密码。 首先,以root身份登录:

# mysql -u root -p

Enter 临时密码。
接下来,在 MySQL shell 中:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'my_new_root_strong_password';
mysql> EXIT;

设置 MySQL 在启动时自动启动:

# chkconfig mysqld on

再次启动 MySQL shell:

# mysql -u root -p

输入新的 root 密码,为 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;

安装 Mattermost 服务器

下载最新版本的 Mattermost 服务器。 为了 example 只是,在我们写作的时候:

# 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, exit, and test the Mattermost Server with the following command:
# sudo -u mattermost /opt/mattermost/bin/platform

如果一切正常,它应该输出

服务器正在侦听:8065

. 用 CTRL+C 中断它。

创建一个 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

检查它是否正在运行,访问 URL https://localhost:8065。

安装和配置 NGINX

安装

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

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

为了在 RHEL 7.1 上安装 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

Save, 退出并使用 yum 安装 NGINX:

# yum install nginx.x86_64

启动 NGINX 并进行测试:

# systemctl start 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

并启用 Mattermost:

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

重启NGINX:

# systemctl restart nginx

结论

在此过程结束时,服务器应该启动并运行。 使用 Web 浏览器访问 URL https://mattermost.mydomain.com 并通过输入电子邮件地址和创建帐户继续配置 Mattermost。
就这样! 服务器已准备好用作您的消息传递系统!

相关阅读:

Posted in: LinuxTags: ,