MES系统部署(服务器部署的流程相同)
由于没给我详细教程,凭我什么坑都踩的性格,浅浅记录详细部署过程,后面忘了也可以直接照抄
部署文件

虚拟机:Centos 7 64位
安装nginx
流程1(失败)
- 放入文件
创建一个MES文件夹,将三个文件直接拖入到虚拟机Mes文件夹中,dist文件需要压缩后才能放入,不然会报错(由于后面MES文件夹打不开了,我重新使用winSCP重新上传了文件)
![image]()
- 配置nginx源
命令:sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
![image]()
- 下载nginx源
命令:sudo yum install -y nginx
![image]()
失败原因: CentOS 7 已于 2024年6月30日停止维护,官方镜像源已经下线,导致 YUM 无法连接到 mirrorlist.centos.org
流程2(成功)
- 放入文件
创建一个MES文件夹,将三个文件直接拖入到虚拟机Mes文件夹中,dist文件需要压缩后才能放入,不然会报错
![image]()
- 配置阿里云 CentOS 7 源
命令:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
![image]()
- 清理缓存并重新生成
命令:yum clean all
命令:yum makecache
![image]()
- 安装 Nginx
命令:sudo yum install -y nginx
![image]()
- 设置自启动
命令:sudo systemctl start nginx.service
命令:sudo systemctl enable nginx.service
![image]()
- 测试是否启动成功
命令:curl localhost
![image]()
安装redis
流程1(成功)
- 配置EPEL 源
命令:curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
![image]()
- 清理缓存
命令:yum clean all && yum makecache
![image]()
- 安装redis
命令:sudo yum install -y redis
![image]()
- 设置自启动
命令:sudo systemctl start redis
命令:sudo systemctl enable redis - 测试是否安装成功
命令:redis-cli
![image]()
安装mysql8.0
流程1(成功)
- 配置官方源
命令:sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
![image]()
- 安装mysql8.0
命令:sudo yum install -y mysql-community-server
![image]()
- 设置自启动
命令:sudo systemctl start mysqld
命令:sudo systemctl enable mysqld - 查看临时密码
命令:sudo grep 'temporary password' /var/log/mysqld.log
![image]()
- 进入mysql
命令:mysql -u root -p(密码为临时密码)
![image]()
密码错误原因: 我忽视了密码最后一个>,使用了hGNH%ojky4f作为密码
命令:mysql -u root -p"hGNH%ojky4f>"
![image]()
- 修改密码
命令:ALTER USER 'root'@'localhost' IDENTIFIED BY '设置一个高强度密码'; - 关闭密码强度验证
命令:SET GLOBAL validate_password.policy = 0;
![image]()
- 设置低强度密码
命令:ALTER USER 'root'@'localhost' IDENTIFIED BY '设置一个低强度密码';
数据库文件导入
流程1(成功)
- 进入mysql
命令:mysql -u root -p
![image]()
- 创建数据库
命令:CREATE DATABASE IF NOT EXISTS mes_system CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
![image]()
- 查看数据库
命令:SHOW DATABASES;
![image]()
- 使用mes_system数据库
命令:use mes_system;
![image]()
- 导入sql脚本
sql脚本绝对路径: /root/Desktop/MES/mes_system2.sql
命令:source /root/Desktop/MES/mes_system2.sql
注意不能出现error - 查看mes_system的表
命令:SHOW TABLES;
![image]()
导入数据成功 - 退出
命令:exit
后端文件部署
流程1(失败)
若依jar包绝对路径:/root/Desktop/MES/ruoyi-admin.jar
命令: java -jar /root/Desktop/MES/ruoyi-admin.jar &

出现连接失败,由于这是别人给的文件,若依配置的数据库与密码均不同导致失败并且mysql8.0默认不允许公钥检索
流程2(成功)
- 结束运行
快捷键: ctrl + C - 进入MES文件夹
命令:cd /root/Desktop/MES/
![image]()
- 创建 application.yml
命令:vi application.yml - 写入正确的数据库配置
按下i进入编辑模式
数据库配置代码
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverdruid:master:url: jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=trueusername: 用户名password: 密码slave:enabled: falseurl:username:password:initialSize: 5minIdle: 10maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000maxEvictableIdleTimeMillis: 900000validationQuery: SELECT 1testWhileIdle: truetestOnBorrow: falsetestOnReturn: falsewebStatFilter:enabled: truestatViewServlet:enabled: trueallow:url-pattern: /druid/*login-username: ruoyilogin-password: 123456filter:stat:enabled: truelog-slow-sql: trueslow-sql-millis: 1000merge-sql: truewall:config:multi-statement-allow: true
编写完成
按下esc退出编辑模式
输入 :wq 保存退出
- 查看文件是否保存
命令:ls
![image]()
- 结束原来的jar包进程
命令:pkill -f ruoyi-admin.jar - 运行若依jar包
命令:java -jar /root/Desktop/MES/ruoyi-admin.jar &
![image]()
若依启动成功,重新开一个命令窗口
前端文件部署
流程1(成功)
- 将前端文件拷贝到nginx文件夹下
前端文件绝对路径: /root/Desktop/MES/dist
nginx目录绝对路径:/usr/share/nginx/
命令:cp -r 源目录 目标目录 - 修改nginx配置
nginx配置绝对路径: /etc/nginx/conf.d/default.conf
命令:vim /etc/nginx/conf.d/default.conf - 注释以下内容
![image]()
![image]()
- 添加前端配置
![image]()
前端配置代码
location / {root /usr/share/nginx/dist;try_files $uri $uri/ /index.html;index index.html index.htm;
}
前端代码解析
location /:匹配所有以 / 开头的 URI(即所有请求),但优先级低于更具体的匹配(如 /prod-api/)。root /usr/share/nginx/dist;:指定静态文件的根目录为 /usr/share/nginx/dist。假设前端项目构建后的文件(如 index.html、JS、CSS 等)都放在这个目录下。try_files $uri $uri/ /index.html;:Nginx 会按照顺序尝试查找文件:直接访问 $uri(例如请求 /about,则尝试查找 /usr/share/nginx/dist/about 文件);
如果文件不存在,则尝试将 $uri 作为目录,查找该目录下的默认索引文件(由 index 指令指定);
如果都失败,则内部重定向到 /index.html(返回前端入口文件)。
- 添加后端API代理配置
![image]()
后端API配置代码
location /prod-api/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://localhost:8080/;
}
后端API代理解析
location /prod-api/:匹配所有以 /prod-api/ 开头的 URI(例如 /prod-api/user/list)。这个前缀通常在前端代码中配置为 API 请求的统一前缀。proxy_set_header 指令:在将请求转发给后端之前,修改或添加请求头,以便后端获取客户端的真实信息:Host $http_host:传递原始请求的 Host 头。X-Real-IP $remote_addr:传递客户端的真实 IP 地址(Nginx 与客户端直接连接时)。REMOTE-HOST $remote_addr:与上面类似,有些后端可能使用该头。X-Forwarded-For $proxy_add_x_forwarded_for:追加客户端的 IP 到已有的 X-Forwarded-For 链中,用于记录经过的代理。proxy_pass http://localhost:8080/;:将匹配到的请求反向代理到本地的 8080 端口(即后端 Spring Boot 应用的默认端口)。注意末尾的 / 会替换掉匹配的 /prod-api/ 前缀:例如请求 /prod-api/user/list 会被转发到 http://localhost:8080/user/list如果 proxy_pass 末尾没有 /,则会保留完整路径(如 http://localhost:8080/prod-api/user/list)
- 测试配置文件修改是否有语法错误
命令:nginx -t
![image]()
- 重新加载nginx
命令:nginx -s reload
外部访问
流程1
- 防火墙永久开启80端口通信
命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
![image]()
命令解析
firewall-cmd:是 CentOS 7 中管理 firewalld 防火墙的命令行工具,中间没有空格。--zone=public:指定要操作的区域(zone)为 public。等号 = 前后不需要空格,也可以写成 --zone public(空格代替等号)。--add-port=80/tcp:添加一条规则,允许 TCP 协议的 80 端口通过防火墙。--permanent:表示将规则永久保存(重启后依然生效)。如果不加此选项,规则仅临时生效(重启或重新加载防火墙后丢失)。
-
刷新防火墙
命令:sudo firewall-cmd --reload
![image]()
-
永久关闭关闭SELinux安全检查
命令:vim /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled
![image]()
-
重启服务器
命令:sudo reboot -
验证SELinux安全检查是否被关闭
命令:getenforce
![image]()
-
启动若依服务
命令:java -jar /root/Desktop/MES/ruoyi-admin.jar &
出现报错,mysql拒绝连接,jBDC的ip为192.168.108.107
但我实际所需IP为192.168.108.130,所需我所写的配置没有被读取
原因为当前工作目录不是MES,无法读取到MES目录下的application.yml,需要切换到MES目录,才能正常运行若依

后续使用
- nginx会自动启动
- redis会自动启动
- mysql会自动启动
- SELinux安全检测已永久关闭
- 防火墙80端口已永久开启
- 若依服务需要启动,并且保留原本jar包配置并增加指定的配置文件信息
命令:java -jar /root/Desktop/MES/ruoyi-admin.jar --spring.config.additional-location=/root/Desktop/MES/application.yml
虚拟机部署完成
MES 3D大屏信息修改
- ip修改
![image]()
需要将所有的localhost修改为自己虚拟机的IP地址
启动
打开cmd,切换到3d-large-screen目录下
命令: npm run dev

运行成功,使用的npm版本为npm 16
关闭防火墙:sudo systemctl stop firewalld
访问
前台访问地址:http://localhost:5173/
后台访问地址:http://192.168.108.130/




































