创建一个单独的用户运行MCSManager(非必需)
对于一般的服务器,只运行单个应用,因此在非root用户下直接构建应用并运行即可。但对于博主的服务器,同时运行多个应用,因此每个用户分别管理与控制一个应用有利于管理权限等方面内容。需要注意的是:如果之后不考虑权限管理,可以跳过该步骤
远程ssh连接服务器。
此类教程有许多,这里随便列几个链接,就不过多赘述了。
通过SSH连接到Linux服务器 、Windows 系统下:SSH 远程连接 Linux 服务器的完整指南
创建用户并修改用户密码
这个步骤需要保证当前用户拥有管理权限或拥有sudo权限。
若当前用户不为root 尝试以下命令
1
2
3
4
# 创建用户
sudo useradd -m -s "/bin/bash" mcsmanager
# 修改用户密码
sudo passwd mcsmanager
Copy 若上述命令执行后弹出“xxx is not in the sudoers file.”其中xxx为当前用户名,这表明当前用户没sudo权限,请参考在Linux中,如何添加和管理用户账户以及如何设置sudo权限? 或linux中创建用户并赋予用户sudo权限 给当前用户赋予sudo权限后重新进行上述操作,或使用如下命令切换至root用户后执行后续命令。需要注意的是:切换用户时会要求输入密码,linux输入密码类操作时不会显示密码,并不是你没有输入
若当前用户为root 尝试以下命令
1
2
3
4
# 创建用户
useradd -m -s "/bin/bash" mcsmanager
# 修改用户密码
passwd mcsmanager
Copy 安装MCSManager
这里可以使用MCSManager官方提供的Linux一键安装脚本(本教程不推荐)
1
2
# 获取一键安装脚本并执行
sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"
Copy
推荐使用如下方法安装(即 Linux 手动安装)
安装nodejs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 回到当前用户的家目录
cd
# 创建PATH目录
mkdir bin
# 创建nodejs存储目录
mkdir env
# 移动到nodejs存储目录
cd env
# 下载运行时环境(Node.js)。如果你已经安装了Node.js 16+,请忽略此步骤。(如果下述指令执行失败,请在网上自行百度“linux 安装wget”)
wget https://nodejs.org/dist/v20.16.0/node-v20.16.0-linux-x64.tar.xz
# 解压档案
tar -xvf node-v20.16.0-linux-x64.tar.xz
# 添加程序到系统环境变量
ln -s /home/mcsmanager/env/node-v20.16.0-linux-x64/bin/node bin/node
ln -s /home/mcsmanager/env/node-v20.16.0-linux-x64/bin/npm bin/npm
Copy 注意:这里需要断开ssh连接,重新连接
再次连接上ssh后执行以下命令检验是否安装正确
1
2
3
4
# 查看nodejs版本
node -v
# 查看npm包管理器版本
npm -v
Copy 执行上述指令后返回诸如以下结果即表明正确安装
1
2
3
4
mcsmanager@Server:~$ node -v
v20.16.0
mcsmanager@Server:~$ npm -v
10.8.1
Copy 安装docker
此步骤也非必须内容,但为了更好的隔离各个我的时间服务器环境,推荐安装docker。此处安装请参考以下博客注意:该过程中指令请全程使用root用户操作
**如何区分是yum包管理的linux还是apt包管理的linux?**如何输入以下指令能返回如下所示结果即为apt包管理的linux,否则大概率是yum包管理的linux。
1
2
root@Server:~$ apt --version
apt 2.6.1 ( amd64)
Copy 安装成功后执行以下命令把用户添加到docker组中
1
2
# 将用户添加到sudo组
usermod -aG docker mcsmanager
Copy 注意:这里需要断开ssh连接,重新连接用户为mcsmanager
再次连接上ssh后执行以下命令检验是否安装正确
1
2
mcsmanager@Server:~$ docker --version
Docker version 20.10.24+dfsg1, build 297e128
Copy 下载MCSManager
使用mcsmanager用户执行下述指令
1
2
3
4
5
6
7
8
9
# 返回家目录
cd
# 准备好安装目录
mkdir mcsmanager/
cd mcsmanager/
# 下载MCSManager
wget https://github.com/MCSManager/MCSManager/releases/latest/download/mcsmanager_linux_release.tar.gz
tar -zxf mcsmanager_linux_release.tar.gz
Copy 这里下载是用github源下载的,可能会下载缓慢,或下载失败。如果下载失败可从如下a、b两种方式中任选一种操作
a. 使用gitee源下载
1
2
3
# 下载MCSManager
wget https://gitee.com/mcsmanager/MCSManager/releases/download/v10.1.0/MCSManager-v10-linux-x64.tar.gz
tar -zxf MCSManager-v10-linux-x64.tar.gz
Copy b. 本地电脑下载使用scp上传到服务器
访问https://github.com/MCSManager/MCSManager/releases/latest/download/mcsmanager_linux_release.tar.gz 。下载成功后参考SCP:将本地文件上传到Linux服务器 或通过 SSH 在远程和本地系统之间传输文件的 4 种方法 将文件上传至“/home/mcsmanager/mcsmanager”目录下。之后连接服务器输入以下指令
1
2
cd /home/mcsmanager/mcsmanager
tar -zxf mcsmanager_linux_release.tar.gz
Copy 安装nodejs相关依赖
执行以下命令
1
2
3
4
# 进入安装目录
cd /home/mcsmanager/mcsmanager
# 安装依赖库
./install.sh
Copy 如果出现以下响应
1
-bash: ./install.sh: No such file or directory
Copy 请从a、b、c三种途径中任选一种
a. 自己在当前目录(/home/mcsmanager/mcsmanager)中创建一个文件,内容如下
1
2
3
4
5
6
7
8
#!/bin/bash
cd web
npm install --production
cd ../daemon
npm install --production
echo Dependencies are installed!
Copy b. 执行如下指令下载
1
wget https://raw.githubusercontent.com/mokuaisp/LFS-provider/main/blog/shenghongzha/Minecraft_Server/install.sh
Copy c. 自行下载install.sh利用scp上传到“/home/mcsmanager/mcsmanager”目录下
下载链接
上传教程见安装2.3.b分享的博客
注意以上三种方式补全install.sh后请执行以下命令
之后继续尝试安装依赖,若长时间转圈并未有响应,请参考博客国内npm源镜像(npm加速下载) 指定npm镜像 对npm换源后重新尝试下载
注册到 Linux 系统服务
切换至root 用户
在“/etc/systemd/system/”目录下创建mcsm-daemon.service文件(创建方法参考2.4a、b、c,将连接替换成mcsm-daemon.service下载链接 ),内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
[ Unit]
Description = MCSManager Daemon
[ Service]
User = mcsmanager
WorkingDirectory = /home/mcsmanager/mcsmanager/daemon
ExecStart = /home/mcsmanager/bin/node app.js
ExecReload = /bin/kill -s HUP $MAINPID
ExecStop = /bin/kill -s QUIT $MAINPID
Environment = "PATH=/home/mcsmanager/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
[ Install]
WantedBy = multi-user.target
Copy 在“/etc/systemd/system/”目录下创建mcsm-web.service文件(创建方法参考2.4a、b、c,将连接替换成mcsm-web.service下载链接 ),内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
[ Unit]
Description = MCSManager Web
[ Service]
User = mcsmanager
WorkingDirectory = /home/mcsmanager/mcsmanager/web
ExecStart = /home/mcsmanager/bin/node app.js
ExecReload = /bin/kill -s HUP $MAINPID
ExecStop = /bin/kill -s QUIT $MAINPID
Environment = "PATH=/home/mcsmanager/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
[ Install]
WantedBy = multi-user.target
Copy 启动MCSManager
在root 用户下执行以下命令
1
2
3
4
systemctl start mcsm-daemon.service
systemctl start mcsm-web.service
systemctl enable mcsm-daemon.service
systemctl enable mcsm-web.service
Copy 检验启动结果,输入以下指令返回类似结果即算成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
systemctl status mcsm-daemon.service
● mcsm-daemon.service - MCSManager Daemon
Loaded: loaded ( /etc/systemd/system/mcsm-daemon.service; enabled; preset: enabled)
Active: active ( running) since Sun 2024-08-11 16:17:20 CST; 35s ago
Main PID: 245529 ( node)
Tasks: 11 ( limit: 2025)
Memory: 30.4M
CPU: 533ms
CGroup: /system.slice/mcsm-daemon.service
└─245529 /home/mcsmanager/bin/node app.js
Aug 11 16:17:20 iZ2vcimj6d96eq555um1leZ node[ 245529] : [ 08/11 16:17:20] [ INFO] 所有应用实例已加载,总计 0 个
Aug 11 16:17:20 iZ2vcimj6d96eq555um1leZ node[ 245529] : [ 08/11 16:17:20] [ INFO] ----------------------------
Aug 11 16:17:20 iZ2vcimj6d96eq555um1leZ node[ 245529] : [ 08/11 16:17:20] [ INFO] 守护进程现已成功启动
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
systemctl status mcsm-web.service
● mcsm-web.service - MCSManager Web
Loaded: loaded ( /etc/systemd/system/mcsm-web.service; enabled; preset: enabled)
Active: active ( running) since Sun 2024-08-11 16:04:56 CST; 17min ago
Main PID: 245187 ( node)
Tasks: 11 ( limit: 2025)
Memory: 45.8M
CPU: 2.777s
CGroup: /system.slice/mcsm-web.service
└─245187 /home/mcsmanager/bin/node app.js
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[ 245187] : [ 08/11 16:04:57] [ INFO] 本地用户数:1
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[ 245187] : [ 08/11 16:04:57] [ INFO] 正在尝试连接远程节点:[ xxx]
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[ 245187] : [ 08/11 16:04:57] [ INFO] 远程节点数:1
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[ 245187] : [ 08/11 16:04:57] [ INFO] ==================================
Aug 11 16:04:57 iZ2vcimj6d96eq555um1leZ node[ 245187] : [ 08/11 16:04:57] [ INFO] 控制面板端已启动
Copy