本文章使用的是
CentOS 7.0 64位+宝塔7.9.7+Mysql5.7.4.0+Mattermost7.7.0+PHP7.4+Nginx 1.18.0
如有版本不同导致兼容性问题,请在网上或官方文档查阅相关资料

步骤

  • Mysql数据库
    • 安装
    • 添加数据库
  • Mattermost Server
    • 安装
    • 配置config.json设置
      • 连接数据库
      • 安装systemd init守护
      • 允许注册
    • 配置邮件服务smtp
      • 邮箱端设置
      • 聊天室设置
  • 配置域名
    • 域名解析
    • ssl证书申请
  • 宝塔域名配置
    • 绑定ssl证书
    • 设置反向代理
    • 聊天室设置域名

宝塔在此我就不教大家如何安装了,它也就是一行代码的事情,建议去另找教程!

Mysql数据库

安装

首先我们打开宝塔界面,点击软件商店

其次找到并安装MySQL

注意:如果你是选择原码安装的话,相对会慢一些,但是相对快速安装会更好

添加数据库

安装好数据库Mysql后,点击左侧的数据库,并且点击添加数据库

添加数据库时可以按照我的模板来设置,我的建议是根据网站来命名,这样好区分;写完名字、用户名以及密码后,记得选择utf-8编码形式,完成后提交,如图所示

数据库名:mattermost

用户名:mmuser

密码:

出现如图所示,代表你的Mysql数据库安装并添加成功!

Mattermost Server

安装

以下命令要在服务器命令行执行,如想知道最新版本可前往Mattermost Server安装官方网站

#首先可前往官网寻找版本号,然后在命令行输入下列命令安装(用你需要的版本号来代替X.X.X)(2023.1.18时最新版为7.7.0)
wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz

#下载完成后,解压
tar -xvzf *.gz

#把解压的文件移动到根目录下opt文件夹
mv mattermost /opt

#创建存储数据文件夹
mkdir /opt/mattermost/data

#设置一个名为"mestmost"的系统用户和组,将利用该用户和组运行此服务,并设置所有权和权限
useradd --system --user-group mattermost
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost

配置config.json设置

连接数据库

#在/opt/mattermost/config/config.json中设置数据库驱动程序。在宝塔左侧文件选项中修改文件config中三个地方
#分别在config文件中第3行、138行、139行

SiteURL: https://mattermost.example.com,
DriverName: mysql
DataSource: mmuser:aGHsbG5tGaDNJpS8@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s

最后面"DataSource"的值中mmuser就是你数据库的用户名;password就是你设置的密码,mattermost就是你数据库的名字,如果用的是我的模板,只需要把密码更改即可

注意:此项一定不能漏一个符号,该数值将影响mattermost连接数据库,直接影响使用!

紧接着我们测试一下是否正常

#进入mattermost文件夹
cd /opt/mattermost

#以mattermost的用户启动Mattermost服务器
sudo -u mattermost ./bin/mattermost

#当出现 Server is listening on [::]:8065 即说明成功

安装systemd init守护

#使用systemd init守护程序来处理对Mattermost进程的监督
#创建Mattermost配置文件
touch /etc/systemd/system/mattermost.service

#进入该文件,加入以下内容
[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service
[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target

#使服务可执行
chmod 664 /etc/systemd/system/mattermost.service

#重新加载系统服务
systemctl daemon-reload

#将Mattermost设置为在启动时启动
sudo systemctl enable mattermost

#启动Mattermost服务器
systemctl start mattermost

#验证Mattermost是否正在运行,直接打开http://ip:8065

注意:如果输入systemctl start mattermost后显示错误,有可能是因为你在Mattermost中的”网页服务器“设置中监听了443端口,这会导致系统在启动Mattermost时检测到443端口已被占用,最终导致无法启动;所以在配置域名之前不能随意乱动设置-网页服务器的配置,有可能会导致无法打开网页;已经打不开也不用怕,可以在宝塔文件中,在/opt/mattermost/config/config.json中第6行更改,更改为"ListenAddress": ":8065"(此问题在后面配置是还会提起)

允许注册

#找到config文件中第110行,将false改为true
EnableUserCreation: true

注意:Mattermost7.7.0版本是需要第一个在登陆界面注册才是系统管理员

配置邮件服务smtp

邮箱端设置

打开能够提供smtp服务的邮箱,这里我拿QQ邮箱作为介绍

首先进入邮箱,点击上方的设置

点击账户,然后往下划就看的到SMTP设置

然后开启IMAP/SMTP服务,然后通过密保验证,你会得到一串授权码(用记事本先保存此授权码,到后面配置时需要用到),这个授权码务必不要被别人知道!

注意:这串授权码可以在此界面申请多个,并且已存在的密码是可以一起使用的,但注意保管

邮件端SMTP服务就设置成功了!

聊天室设置

进入系统控制台,翻到“站点配置”,点击“通知”,然后按照红色箭头以及每栏底下灰字要求填写

注意:“来自地址的通知”这栏务必要和你开启SMTP的邮箱地址一模一样,如果填写不一样将出现错误

然后接着在系统控制台翻到“环境”,点击“SMTP”,然后按照图内要求填写

当你全部完成后,最后点击“测试连接”,Mattermost就会发一封邮件给系统管理员发一封测试邮件,代表SMTP设置成功!

配置域名

域名解析

注意:本栏目图片较小,请认真阅读!!

注意2:本栏目用test.lanxige.club作为例子,请不要无脑填写!!

这里我注册的是腾讯云的域名,具体注册方法自行寻找网上教程,我这里仅展示已经注册好的域名做DNS解析服务

打开腾讯云中“我的域名”找到域名,并且点击“解析

进去后点击“添加记录”,并按照图内要求填写

注意:网址前缀可自定义,服务器ip注意不要写错!

填写完后如图所示

ssl证书申请

以上张图片为例,点击右边SSL

进去后点击“申请免费证书”,然后选择免费版,再根据图内要求填写

点击提交申请,进行域名验证,然后你就会收到一封邮件,返回我的SSL证书,结果如下,显示已签发代表申请成功,如果没有等大概5分钟内就会审核成功

注意:此界面不要关闭,接下来还需要下载文件!!

宝塔域名设置

绑定ssl证书

进入宝塔,点击“网站”,点击“PHP项目”,再点击“添加站点”(如PHP没安装,根据网站提示安装)

然后根据图片提示添加

提交后,在那栏网站最右边点击设置

在设置中点击“SSL”,然后点击“当前证书

然后再回到腾讯云我的SSL证书那里,找到你申请的ssl证书,点击下载,并将压缩包另存到桌面,然后把压缩包解压到桌面,文件夹会显示四个文件

用记事本打开“test.lanxige.club.key”、“test.lanxige.club_bundle.pem”,然后返回到网站的SSL设置中,将两个文件里的所有内容分别复制粘贴到里面,效果如图,注意分清楚key和pem的位置,不要粘贴错了!

注意:记得勾选强制HTTPS!!!

点击保存并启用证书,网站的ssl证书就配置完毕!

设置反向代理

设置完ssl证书后,点击“反向代理”,再点击“添加反向代理”,根据图片进行配置,写完后点击提交

提交后会显示一行开启反向代理的网站,然后点击“配置文件

再将下面的配置全部覆盖整个配置文件,记得将显示ip的地方,替换成你服务器的ip

注意:一共要修改两处ip,如果未修改会显示错误!

#PROXY-START/
location /
{
    client_max_body_size 50M;
    proxy_set_header Connection "";
    proxy_pass http://ip:8065;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;     
    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_http_version 1.1;
    add_header X-Cache $upstream_cache_status;
    
    #Set Nginx Cache
    
        add_header Cache-Control no-cache;
    expires 12h;
}
location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_pass http://ip:8065;
       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-END/

覆盖整个配置文件后,点击保存,设置反向代理成功!

聊天室设置域名

进入Mattermost系统控制台,翻到“环境”,点击“网页服务器”,然后按照图内要求填写

注意:填写时只需要更改站点网址,剩下的配置保持默认,无需乱动,否则会导致systemd init守护加载应用显示端口占用

填写正确后,点击测试网址,出现如图所示即代表你的Mattermost Server域名配置成功了!

参考文档

宝塔面板安装MatterMost多功能团队聊天室并开启SSL - zk的思想创意收集馆 (zkcoi.com)

安装Mattermost server官方文档(全英)