个人随笔
目录
铭飞MCMS v6.2.0 完整部署笔记(JDK17+MySQL8.0+CentOS7/Windows本地部署)
2026-07-02 23:48:15
一、项目技术选型说明(适配海外宠物商品宣传站)

1. 竞品方案放弃原因

  • Halo:仅支持博客模型,无原生商品模块;采用GPLv3协议,商用修改代码必须开源,前后台分离需双端启动,开发成本高,不适合商品展示类站点。
  • OpenCart(PHP):外贸生态插件丰富,但核心技术栈为PHP,与主流Java技术栈不符,底层二次开发门槛极高。
  • Java微服务商城(mall等):强依赖Redis、MQ、Nacos等中间件,本地部署流程繁琐、环境成本高,仅做商品展示场景性能严重过剩。

2. 最终选型:铭飞MCMS v6.2.0

核心技术栈

  • 后端:SpringBoot3 + MyBatis-Plus + Shiro 单体一体化架构
  • 前端渲染:Freemarker服务端渲染,无需独立Node前端项目
  • 后台管理:内嵌打包Vue3静态资源,仅启动1个SpringBoot进程即可访问前后台
  • 数据库:MySQL5.7及以上(兼容MySQL8.0)
  • 强制运行环境:JDK17(仅支持解压绿色版/安装版,推荐免安装解压版)
  • 开源协议:MIT宽松商用协议

场景适配核心优势

  • 可视化自定义商品模型,可一键新增宠物商品、亚马逊ASIN、外链跳转等业务字段,无需手动建表;
  • 单体架构极简部署,仅一个Jar包,本地开发、服务器上线零复杂度;
  • 前台模板完全自定义,适配海外宠物产品展示页面定制需求;
  • 商用合规无风险,仅需保留源码内部版权注释,前台页面可自定义去除官方标识。

二、本地环境配置(JDK17 解压版部署)

1. JDK17下载(免安装绿色版)

禁止使用安装包,仅推荐ZIP解压版,适配IDEA快速配置,无需系统环境变量冗余配置。
  • 首选微软OpenJDK17(国内高速、免费商用)下载直链:https://aka.ms/download-jdk/microsoft-jdk-17-windows-x64.zip文件格式:纯ZIP压缩包,无捆绑安装程序
  • 备选Eclipse Temurin17(官方认证版)下载地址:https://adoptium.net/temurin/releases/?version=17筛选参数:Windows x64、Package Type选择ZIP(禁止MSI安装包)

2. 解压规范(必遵守,避免编译报错)

  • 解压路径无中文、无空格、无特殊符号,示例:D:\dev\jdk17
  • 校验标准:存在路径 D:\dev\jdk17\bin\java.exe 即为解压成功

3. IDEA专属配置(最简方案,无需系统环境变量)

  1. 打开 IDEA → File → Project Structure → Platform Settings → SDKs
  2. 点击「+」→ Add JDK,选中JDK17解压根目录
  3. Project与所有Module统一绑定该JDK17,Language Level设置为17

4. 系统全局配置(可选)

需全局调用Java命令时配置环境变量:
  1. 新建系统变量 JAVA_HOME = D:\dev\jdk17
  2. Path变量新增 %JAVA_HOME%\bin
  3. CMD执行 java -version,输出版本17即为配置生效

三、CentOS7 MySQL8.0 标准化部署(适配MCMS)

MCMS兼容MySQL8.0,需开启表名大小写不敏感(项目强制要求),以下为无报错完整部署流程。

1. 环境清理(规避冲突)

卸载系统自带MariaDB及旧版MySQL残留,彻底消除版本冲突:
# 卸载自带Mariadb
rpm -qa | grep mariadb
rpm -e --nodeps $(rpm -qa | grep mariadb)

# 清理旧MySQL残留
rpm -qa | grep mysql
rpm -e --nodeps $(rpm -qa | grep mysql)
rm -rf /var/lib/mysql /etc/my.cnf

2. 安装MySQL8.0官方源

无wget可使用curl替代下载,适配所有CentOS7服务器:
# 无wget执行此命令下载源包
curl -O https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

# 安装官方源
rpm -ivh mysql80-community-release-el7-11.noarch.rpm

# 校验源生效
yum repolist enabled | grep mysql

3. 安装MySQL8.0服务端

yum install mysql-community-server -y

4. 核心配置:开启大小写不敏感(MCMS必配)

重要规则:MySQL8.0的lower_case_table_names=1 必须在数据库初始化前配置,已初始化数据库直接修改会启动报错。
  1. 停止服务、清空初始化数据
systemctl stop mysqld
rm -rf /var/lib/mysql
mkdir /var/lib/mysql
chown mysql:mysql /var/lib/mysql
chmod 700 /var/lib/mysql
  1. 编辑配置文件 vim /etc/my.cnf,替换完整配置
[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
bind-address=0.0.0.0
# 强制大小写不敏感(MCMS核心要求)
lower_case_table_names=1
default_authentication_plugin=mysql_native_password
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=1000

[mysql]
default-character-set=utf8mb4
  1. 关闭SELinux拦截、安装依赖、重新初始化
# 关闭SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 安装必备依赖
yum install libaio numactl-libs -y

# 重新初始化数据库
mysqld --initialize --user=mysql

# 启动并开机自启
systemctl start mysqld
systemctl enable mysqld

5. 初始化密码与远程授权

  1. 获取临时密码
grep 'temporary password' /var/log/mysqld.log
  1. 登录修改密码(符合MySQL8复杂度规则)
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
FLUSH PRIVILEGES;
  1. 开启root远程登录(适配本地连接服务器数据库)
CREATE USER 'root'@'%' IDENTIFIED BY 'Root@123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';
FLUSH PRIVILEGES;

6. 放行防火墙端口

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
云服务器额外配置:阿里云/腾讯云后台安全组放行3306端口,否则外部无法连接。

四、MCMS v6.2.0 完整本地部署流程

1. 前置环境校验

  • JDK17已配置至IDEA,版本正常
  • MySQL8.0正常运行,支持大小写不敏感、utf8mb4编码
  • 项目存放路径纯英文无空格:示例 D:\code\MCMS

2. 拉取官方源码并导入项目

git clone https://gitee.com/mingSoft/MCMS.git
IDEA操作:File → Open → 选中项目根目录pom.xml,以Maven项目导入,等待依赖自动加载完成。

3. 数据库初始化

  1. 创建适配MCMS的数据库(支持emoji、海外特殊字符)
CREATE DATABASE mcms DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 导入官方初始化SQL(替换为本地项目路径)
mysql -u root -p mcms < D:\code\MCMS\doc\mcms-6.2.0.sql

4. 配置项目数据库连接

配置文件路径:src/main/resources/application-dev.yml
替换datasource配置,填写自己的MySQL账号密码:
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/mcms?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useSSL=false
    username: root
    password: Root@123456 # 替换为自己的MySQL密码
    driver-class-name: com.mysql.cj.jdbc.Driver
# 可自定义端口,避免占用
server:
  port: 8080

5. 启动项目

启动类路径:src/main/java/net/mingsoft/MSApplication.java
右键Run启动,控制台输出 Started MSApplication in XX seconds 即为启动成功。

6. 项目上线核心配置(解决前台404、页面不更新)

MCMS为静态化CMS系统,前台页面均为静态生成,无需反复设置模板、新建栏目,所有页面更新、生效仅需执行后台静态化操作,彻底解决前台404、修改内容不生效问题。
  1. 后台登录访问地址:http://localhost:8080/ms/login.do默认账号:msopen密码:msopen
  2. 首次部署必做:全局静态化(解决首页404)登录后台后,左侧菜单【内容管理】→【静态化】,依次点击执行:① 生成主页 ② 生成栏目 ③ 生成全部文章执行完毕后,前台 http://localhost:8080 即可正常访问。
  3. 后续修改生效规则(核心重点)修改Java代码、Freemarker模板、页面内容、商品数据、网站配置后,无需重启项目、无需切换模板、无需新建栏目,仅需重新执行一次对应静态化操作,页面即可实时更新。

7. 开发热加载配置(模板/代码实时生效,可选)

本地开发可开启热加载,搭配静态化实现高效开发,无需频繁重启项目:
  • IDEA Settings → Compiler → 勾选 Build project automatically
  • 快捷键 Ctrl+Shift+Alt+/ 打开Registry,勾选 compiler.automake.allow.when.app.running
  • 配置完成后,修改代码、模板自动编译,执行静态化即可刷新前台页面
前台访问地址:http://localhost:8080,静态化执行成功后即可正常展示页面,部署完成。

五、全网踩坑总结(高频问题解决方案)

1. MySQL8启动失败

  • 报错 Different lower_case_table_names:未清空数据目录直接改配置,重新执行清空目录+初始化步骤即可
  • 权限报错:执行 chown -R mysql:mysql /var/lib/mysql 修复目录权限
  • 依赖缺失:安装 yum install libaio numactl-libs -y

2. 项目启动报错

  • JDK编译报错:所有Module统一绑定JDK17,同步Language Level
  • 数据库连接失败:核对数据库名mcms、账号密码、MySQL服务状态
  • Maven依赖爆红:刷新Maven,配置阿里镜像源

六、商用合规重要提醒

  • MCMS基于MIT协议,商业建站、接单收费完全合规
  • 禁止删除源码内部Java文件头部版权注释,否则侵权;
  • 前台页面底部Powered By标识、官方logo可完全删除,替换为客户自有品牌;
  • 禁止将MCMS源码单独打包售卖、分销给其他开发者,仅可用于自有项目部署使用。
 1

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2