安装&升级
鉴于用户频繁咨询“安装失败报错“、”版本更新”等问题,本指南特提供详细的“安装、更新步骤”及“常见问题”解决教程。
Windows一键安装
提示信息
新手推荐一键安装,快速体验系统功能,查看是否满足当前你的业务场景
账号密码:admin/111111
下载
启动
1、加入qq群:811189776
2、下载一键安装包:群文件/v4.6.0.zip
3、解压到d盘
4、启动图形化界面:小猫考试.exe(右键以管理员身份运行)
5、配置对外访问地址:192.168.0.86
5.1、如果是局域网,ip为本机局域网的ip,如:192.168.110.99
5.2、如果是互联网,ip为互联网ip或域名,如:47.92.221.134、www.myexam.com
6、服务端口允许对外:允许外网访问服务
7、数据库:启动
8、考试服务:启动
9、浏览器打开 http://192.168.0.86:8000
10、验证成功:输入账号密码登录(admin/111111)
Windows安装
注意事项
操作系统要求:win7、win10,win11、win2016
软件版本要求:jdk8、mysql5.7、maven3.8、node18
基础配置
1、选择:控制面板/Windows 防火墙/打开或关闭windows防火墙
2、选择:关闭Windows 防火墙(不推荐)
3、确定
4、配置ip地址:192.168.0.86
5、确定
jdk下载
1、浏览器打开 https://www.oracle.com/java/technologies/downloads/#java8
2、选择 Windows/jdk-8u431-windows-x64.zip/I reviewed.../Download jdk-8u431-windows-x64.zip
3、输入账号密码,点击下一步
4、下载完成
jdk安装
1、解压jdk到D:\soft\
2、打开 计算机/属性/高级系统设置/高级/环境变量/新建
3、配置JAVA_HOME=D:\soft\jdk1.8.0_431
4、追加PATH=%JAVA_HOME%/bin;
5、打开dos窗口,执行java -version
6、校验完成:显示jdk版本
mysql下载
1、浏览器打开 https://dev.mysql.com/downloads/mysql/
2、选择 Archives
3、选择 5.7.44/Microsoft Windows/Windows (x86, 64-bit)/Download
4、下载完成
mysql安装
1、解压mysql到D:\soft\
2、打开 计算机/属性/高级系统设置/高级/环境变量/新建
3、配置MYSQL_HOME=D:\soft\mysql-5.7.44-winx64
4、追加PATH=%MYSQL_HOME%/bin;
5、打开dos窗口
6、初始化data目录:mysqld --initialize
7、安装服务:mysqld -install MYSQL_EXAM
8、启动服务:net start MYSQL_EXAM
9、打开文件:mysql-5.7.44-winx64/data/Win7-2021XTAINP.err
10、找到密码:[Note] A temporary password is generated for root@localhost: EUW:atN9sgLR
11、打开dos窗口
12、输入账号:mysql -uroot -p
13、输入密码:EUW:atN9sgLR
14、重置密码:alter user 'root'@'localhost' identified by 'root';
15、安装完成
maven下载
1、浏览器打开 https://maven.apache.org/download.cgi
2、点击 apache-maven-3.8.8-bin.zip
3、下载完成
maven安装
1、解压maven到D:\soft\
2、打开 计算机/属性/高级系统设置/高级/环境变量/新建
3、配置MVN_HOME=D:\soft\apache-maven-3.8.8
4、追加PATH=%MVN_HOME%/bin;
5、打开dos窗口,执行mvn -v
6、校验成功:显示mvn版本
node下载
1、浏览器打开 https://nodejs.org/zh-cn/download/prebuilt-binaries
2、选择 windows/x64/v18.20.4(LTS)/下载Node.js v18.20.4
3、下载完成
node安装
1、解压node到D:\soft\
2、打开 计算机/属性/高级系统设置/高级/环境变量/新建
3、配置NODE_HOME=D:\soft\node-v18.20.4-win-x64
4、追加PATH=%NODE_HOME;
5、配置NODE_SKIP_PLATFORM_CHECK=1
6、打开dos窗口,执行node -v
7、校验成功:显示node版本
HBuilderX下载
1、浏览器打开 https://www.dcloud.io/hbuilderx.html
2、点击 Download for Windows
3、下载完成
HBuilderX安装
1、解压HBuilderX到D:\soft\,并打开
2、浏览器打开 https://ext.dcloud.net.cn/plugin?id=5701
3、选择 下载插件并导入HBuilderX/是
4、校验成功:插件【dart-sass编译】安装成功!
wkhtmltopdf下载
1、浏览器打开 https://wkhtmltopdf.org/downloads.html
2、点击 7z Archive (XP/2003 or later) 64-bit
3、下载完成
wkhtmltopdf安装
- V5.1.0新增,支持试卷导出,可选配置,需要导出试卷时使用
1、解压 wkhtmltox 到 D:\soft\
2、打开 计算机/属性/高级系统设置/高级/环境变量/新建
3、配置WK_HOME=D:\soft\wkhtmltox
4、追加PATH=%WK_HOME%/bin;
5、打开dos窗口,执行 wkhtmltopdf -V
6、校验完成:显示wkhtmltopdf版本
源码下载
1、浏览器打开 https://gitee.com/zhanghucheng/exam
2、选择 克隆/下载/下载ZIP
3、下载完成
后端程序启动
1、解压源码到D:\soft\
2、打开dos窗口
3、连接到mysql服务器:mysql -uroot -proot
4、创建exam库,指定编码为utf-8:create database xmky_exam default character set utf8 collate utf8_general_ci;
5、和服务端通信使用utf-8编码:set names utf8;
6、进入exam库:use xmky_exam;
7、导入初始脚本:source D:\soft\exam-master\db\mysql\4.6.0.sql
8、打开dos窗口
9、切换到后端目录:cd ./src
10、打包(使用国内镜像):mvn clean package
11、切换到打包文件目录:cd ./sys-web/target/
12、启动程序:java -jar xmky-exam-4.6.0.jar
13、校验成功:启动端口8000,启动时间:12.526秒
PC端程序启动
1、打开dos窗口
2、切换到h5目录:cd h5
3、npm使用国内镜像源:npm config set registry https://registry.npmmirror.com/
4、npm安装:npm install
5、pc端打包:npm run build
6、复制h5/dist到src/sys-web/target/下,并重命名为h5(后端集成了PC端无须nginx)
7、编辑src/sys-web/target/h5/config.js,修改ip为对外ip
8、保存配置
9、浏览器打开 http://192.168.0.86:8000
10、校验成功:输入账号密码登录(admin/111111)
移动端程序启动
1、拖拽m文件夹到HBuilderX
2、HBuilderX菜单栏选择 发行(U)/网站-PC Web或手机H5(仅适用于uni-app)(H)/发行(P)
3、输入账号密码,点击登录
4、复制 m\unpackage\dist\build\web到src/sys-web/target/下,并重命名为m(后端集成了移动端无须nginx)
5、编辑src/sys-web/target/m/static/config.js,修改ip为对外ip
6、保存配置
7、浏览器打开,按F12打开调试模式,选择响应式设计模式(移动端模式)
8、浏览器输入 http://192.168.0.86:8000
9、校验成功:考试用户账号密码登录,暂不支持管理员登录。
Linux安装
注意事项
操作系统基于:CentOS7.9
软件版本要求:jdk8、mysql5.7、maven3.8、node18
源码编译打包参考windows安装,这里不在赘述
基础配置
1、登录账号:root
2、输入密码:root
3、进入ip配置目录:cd /etc/sysconfig/network-scripts/
4、查看哪个是网卡:ls
5、编辑网卡:vi ifcfg-ens33
6、进入编辑模式:i
7、使用静态分配ip方式:BO0TPROT0=static
8、开机激活网卡:ONBOOT=yes
9、添加ip地址:IPADDR=192.168.0.84
10、添加子网掩码:NETMASK=255.255.255.0
11、添加网关:GETEWAY=192.168.0.1
12、添加dns服务器:DNS1=192.168.0.1
13、退出编辑模式:Esc
14、保存并退出::wq
15、网卡配置即时生效:service network restart
16、添加普通用户:adduser xiaomao
17、设置密码:passwd xiaomao
18、输入密码:kaoshi
19、再次输入密码:kaoshi
jdk下载
参考jdk下载
1、浏览器打开 https://www.oracle.com/java/technologies/downloads/#java8
2、选择 Linux/jdk-8u431-linux-x64.tar.gz/I reviewed.../Download jdk-8u431-linux-x64.tar.gz
3、输入账号密码
4、下载完成
5、拷贝到/home/xiaomao
jdk安装
1、连接服务器:ssh 192.168.0.84
2、输入账号:xiaomao
3、输入密码:kaoshi
4、登录成功
5、创建soft目录:mkdir soft
6、解压jdk到soft下:tar -zxf ./jdk-8u431-linux-x64.tar.gz -C ./soft/
7、编辑环境变量:vi ./.bashrc
8、进入编辑模式:i
9、配置环境变量:JAVA_HOME=/home/xiaomao/soft/jdk1.8.0_431
10、配置环境变量:PATH=$JAVA_HOME/bin:$PATH
11、退出编辑模式:Esc
12、保存并退出::wq
13、配置即时生效:source ./.bashrc
14、查看版本:java -version
14、验证成功:显示版本
mysql下载
参考mysql下载
1、浏览器打开 https://dev.mysql.com/downloads/mysql/
2、选择 Archives
3、选择 5.7.44/Linux - Generic/Linux - Generic (glibc 2.12) (x86, 64-bit)/Download
4、下载完成
mysql安装
1、检查是否已安装mysql(分支mariadb):rpm -qa|grep mariadb
2、切换root账号:su root
3、输入密码:root
4、移除依赖:yum -y remove mariadb*
5、检查是否已安装mysql:rpm -qa|grep -i mysql
6、如果有则删除
7、全局查找mysql遗留文件:find / -name mysql
8、如果有则删除:rm -rf /usr/lib64/mysql/
9、全局查找配置文件:find / -name my.cnf
10、如果有则删除
11、解压mysql到/usr/local:tar -zxf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
12、进入/usr/local目录下:cd /usr/local/
13、重命名为mysql:mv mysql-5.7.44-linux-glibc2.12-x86_64/ mysql
14、进入mysql目录:cd mysql/
15、新建data文件夹:mkdir data
16、添加mysql用户组:groupadd mysql
17、添加mysql用户:useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql/
18、改变文件所有者为mysql:chown -R mysql:mysql /usr/local/mysql/
19、初始化库:./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize
20、复制mysql.server到系统服务目录,并重命名:cp -a ./support-files/mysql.server /etc/init.d/mysqld
21、启动服务:service mysqld start
22、连接mysql:./bin/mysql -uroot -p
23、输入密码(从日志找[Note] A temporary password is generated for root@localhost: aiK*oTeB-3;=):aiK*oTeB-3;=
24、重置密码为root:set password for 'root'@localhost=password('root');
25、退出mysql:quit
26、编辑全局环境变量:vi /etc/profile
27、进入编辑模式:i
28、最下一行添加环境变量:export PATH=$PATH:/usr/local/mysql/bin
29、退出编辑模式:Esc
30、保存并退出::wq
31、配置即时生效:source /etc/profile
32、拥有执行权限:chmod +x /etc/init.d/mysqld
33、加入开机启动项:chkconfig --add mysqld
34、退出root账号:exit
wkhtmltopdf下载
1、浏览器打开 https://wkhtmltopdf.org/downloads.html
2、点击 CentOS 7 x86_64
3、下载完成
wkhtmltopdf安装
- V5.1.0新增,支持试卷导出,可选配置,需要导出试卷时使用
1、切换root账号:su root
2、输入密码:root
3、安装依赖:yum install -y fontconfig libX11 libXext libXrender xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 libjpeg
4、安装wkhtmltox:rpm -ivh /home/xiaomao/wkhtmltox-0.12.6-1.centos7.x86_64.rpm
5、复制win电脑"C:\Windows\Fonts\黑体 常规",拷贝到 "/home/xiaomao"
6、添加字体:mv /home/xiaomao/simhei.ttf /usr/share/fonts/dejavu
7、退出root账号:exit
程序启动
1、上传src/sys-web/target/config到/home/xiaomao/exam-server/下
2、上传src/sys-web/target/h5到/home/xiaomao/exam-server/下
3、上传src/sys-web/target/m到/home/xiaomao/exam-server/下
4、上传db/mysql/4.6.0到/home/xiaomao/exam-server/下
5、重新加载系统配置文件:source /etc/profile
6、连接mysql服务端:mysql -uroot -p
7、输入密码:root
8、创建库exam,缺省字符集utf-8:create database xmky_exam default character set utf8 collate utf8_general_ci;
9、设置客户端和服务端通信使用utf-8编码:set names utf8;
10、进入exam库:use xmky_exam;
11、导入初始脚本:source /home/xiaomao/exam-master/db/mysql/4.6.0.sql
12、退出mysql:exit
13、切换root账号:su root
14、输入密码:root
15、防火墙允许8000端口对外:firewall-cmd --permanent --zone=public --add-port=8000/tcp
16、立即生效:firewall-cmd --reload
17、退出root账号:exit
18、进入程序目录:cd ./exam-server/
19、编辑pc端配置文件:vi ./h5/config.js
20、配置url指向后端地址:url: 'http://192.168.0.84:8000/api/'
21、保存并退出
22、编辑移动端配置文件:vi ./m/static/config.js
23、配置url指向后端地址:BASE_URL: 'http://192.168.0.84:8000/api/'
24、保存并退出
25、启动程序:java -jar xmky-exam-4.6.0.jar
26、浏览器打开 http://192.168.0.84:8000
27、校验成功:输入账号密码登录(admin/111111)
28、按F12打开调试模式,选择响应式设计模式(移动端模式)
29、浏览器输入 http://192.168.0.84:8000 回车
30、校验成功:考试用户账号密码登录,暂不支持管理员登录。
dokcer安装
在线安装
bash
#!/bin/bash
# 外置前端配置文件,方便修改ip和端口
mkdir -p h5
cat > h5/config.js << 'EOF'
window.domain = {url: 'http://127.0.0.1:8000/api/',};
EOF
mkdir -p m/static
cat > m/static/config.js << 'EOF'
window.server = {BASE_URL: 'http://127.0.0.1:8000/api',};
EOF
# 生成mysql配置文件
mkdir -p mysql
cat > mysql/my.cnf << 'EOF'
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
default-time-zone='+8:00'
init_connect='SET NAMES utf8mb4'
[client]
default-character-set=utf8mb4
EOF
chmod 444 mysql/my.cnf
# 拷贝数据库初始化脚本到mysql目录下(下面的命令不能执行,自己下载:https://gitee.com/zhanghucheng/exam/blob/master/db/mysql/5.5.0.sql)
cp ./5.5.0.sql ./mysql/5.5.0.sql
# 生成docker-compose.yml文件
cat > docker-compose.yml << 'EOF'
# 服务名称
name: xmky-exam-server
services:
# mysql
mysql:
image: mysql:5.7
container_name: xmky-mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: xmky_exam
ports:
- "8306:3306"
volumes:
- ./mysql/my.cnf:/etc/my.cnf # my.cnf必须设置只读属性
- ./mysql/data:/var/lib/mysql
- ./mysql/logs:/var/log/mysql
- ./mysql/5.5.0.sql:/docker-entrypoint-initdb.d/5.5.0.sql
restart: unless-stopped
# 考试服务
exam-app:
image: 1247qq/xmky-exam:5.5.0
container_name: xmky-exam
ports:
- "8000:8000"
volumes:
- ./h5/config.js:/app/h5/config.js
- ./m/static/config.js:/app/m/static/config.js
- ./bak:/app/bak
environment:
- SPRING_DATASOURCE_URL=jdbc:p6spy:mysql://xmky-mysql:3306/xmky_exam?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=root
depends_on:
- mysql
restart: unless-stopped
EOF
# 启动docker服务
docker compose up -d
cmd
REM 外置前端配置文件,方便修改ip和端口
mkdir h5 && echo window.domain = {url: 'http://127.0.0.1:8000/api/',} > h5\config.js
mkdir m\static && echo window.server = {BASE_URL: 'http://127.0.0.1:8000/api',} > m\static\config.js
REM 生成mysql配置文件
mkdir mysql
echo [mysqld] > mysql\my.cnf
echo character-set-server=utf8mb4 >> mysql\my.cnf
echo collation-server=utf8mb4_unicode_ci >> mysql\my.cnf
echo default-time-zone='+8:00' >> mysql\my.cnf
echo init_connect='SET NAMES utf8mb4' >> mysql\my.cnf
echo. >> mysql\my.cnf
echo [client] >> mysql\my.cnf
echo default-character-set=utf8mb4 >> mysql\my.cnf
attrib +R mysql\my.cnf
REM 拷贝数据库初始化脚本到mysql目录下(下面的命令不能执行,自己下载:https://gitee.com/zhanghucheng/exam/blob/master/db/mysql/5.5.0.sql)
copy .\5.5.0.sql .\mysql\5.5.0.sql
REM 生成docker-compose.yml文件
echo # 服务名称 > docker-compose.yml
echo name: xmky-exam-server >> docker-compose.yml
echo services: >> docker-compose.yml
echo # mysql >> docker-compose.yml
echo mysql: >> docker-compose.yml
echo image: mysql:5.7 >> docker-compose.yml
echo container_name: xmky-mysql >> docker-compose.yml
echo environment: >> docker-compose.yml
echo MYSQL_ROOT_PASSWORD: root >> docker-compose.yml
echo MYSQL_DATABASE: xmky_exam >> docker-compose.yml
echo ports: >> docker-compose.yml
echo - "8306:3306" >> docker-compose.yml
echo volumes: >> docker-compose.yml
echo - ./mysql/my.cnf:/etc/my.cnf # my.cnf必须设置只读属性 >> docker-compose.yml
echo - ./mysql/data:/var/lib/mysql >> docker-compose.yml
echo - ./mysql/logs:/var/log/mysql >> docker-compose.yml
echo - ./mysql/5.5.0.sql:/docker-entrypoint-initdb.d/5.5.0.sql >> docker-compose.yml
echo restart: unless-stopped >> docker-compose.yml
echo # 考试服务 >> docker-compose.yml
echo exam-app: >> docker-compose.yml
echo image: 1247qq/xmky-exam:5.5.0 >> docker-compose.yml
echo container_name: xmky-exam >> docker-compose.yml
echo ports: >> docker-compose.yml
echo - "8000:8000" >> docker-compose.yml
echo volumes: >> docker-compose.yml
echo - ./h5/config.js:/app/h5/config.js >> docker-compose.yml
echo - ./m/static/config.js:/app/m/static/config.js >> docker-compose.yml
echo - ./bak:/app/bak >> docker-compose.yml
echo environment: >> docker-compose.yml
echo - SPRING_DATASOURCE_URL=jdbc:p6spy:mysql://xmky-mysql:3306/xmky_exam?useUnicode=true^&characterEncoding=utf-8^&serverTimezone=GMT%%2B8^&useSSL=false >> docker-compose.yml
echo - SPRING_DATASOURCE_USERNAME=root >> docker-compose.yml
echo - SPRING_DATASOURCE_PASSWORD=root >> docker-compose.yml
echo depends_on: >> docker-compose.yml
echo - mysql >> docker-compose.yml
echo restart: unless-stopped >> docker-compose.yml
powershell -Command "Get-Content -Path 'docker-compose.yml' | Out-File -FilePath 'docker-compose.yml.tmp' -Encoding UTF8; If($?) { Move-Item -Force 'docker-compose.yml.tmp' 'docker-compose.yml' }"
REM 启动docker服务
docker compose up -d
pause
离线安装
dockerhub连接不上,或局域网需要离线部署,请去qq群(811189776)群文件下载离线安装包
- xmky-exam-5.5.0-docker.zip
参考readMe.md文档进行安装
宝塔面板安装
注意事项
操作系统基于:CentOS7.9
软件版本要求:jdk8、mysql5.7
源码编译打包参考windows安装,这里不在赘述
mysql安装
1、安装mysql:数据库->安装Mysql环境->mysql 5.7.44->极速安装
2、初始化root密码:root密码->确定
3、初始化程序密码:添加数据库->数据库名(xmky_exam)->记住用户名和密码->确定
4、导入数据:导入->从本地上传->导入->5.5.0.sql->开始上传->导入
程序安装
1、上传文件:文件->上传/下载->上传文件->开始上传
[根目录/www/wwwroot]
├── xmky-exam-5.5.0.jar # 后端程序
├── config/ # 后端配置文件
├── application.yml
├── logo.png
├── h5/ # PC端程序
├── assets
├── img
├── config.js
├── index.html
└── m/ # 移动端程序
├── assets
└── static/
└── config.js
├── uni_modules
├── index.html
2、修改后台数据库连接:./config/application.yml
username: xmky_exam # mysql安装时设置的用户名
password: hyDcfdYG8LihzAF5 # mysql安装时设置的密码
保存
3、修改PC端ip:./h5/config.js
url: 'http://宝塔面板ip:8000/api/'
4、修改移动端ip:./m/static/config.js
BASE_URL: 'http://宝塔面板ip:8000/api'
5、启动后端服务:网站->Java项目->添加项目->添加JDK信息->jdk1.8.0_371->安装->项目路径->选择/www/wwwroot/xmky-exam-5.5.0.jar->启动用户->root->确定
初次使用建议用root用户启动,因为权限问题导致启动失败,需要消耗时间去排错。
6、检查是否启动成功:xmky-exam-5->日志管理->刷新日志->看最后几行
如果有程序启动日志,表示启动成功。如:系统权限启动:读取秘钥文件并缓存
7、配置防火墙,允许外网访问:安全->添加端口规则->端口->8000->确定
8、浏览器服务:http://宝塔面板ip:8000
wkhtmltopdf下载
wkhtmltopdf安装
1、打开终端
2、安装wkhtmltopdf
版本升级
提示信息
最新版本程序在:https://gitee.com/zhanghucheng/exam
数据库脚本在db/mysql/下,命名规则:
a.b.c.sql
a:大版本,不同的a之间不兼容。如3.9.3不兼容4.0.0。
b:a的小版本,升级下一版需b+1。如4.5.0.sql - 4.6.0.sql,表示4.5.0版本升到4.6.0版本。
c:b的bug修复版本,不做字段变更,一般只是添加版本信息。如4.4.1 - 4.4.2.sql,可以不用。
1、停止后端服务
2、后端、pc端、移动端编译打包后替换旧文件。配置文件不要替换,否则需要重配,如ip。
3、按需使用升级脚本,不要跨版本更新。
如:当前版本为4.4.0,需要升级到4.6.0,需要4.4.0.sql - 4.5.0.sql,4.5.0.sql - 4.6.0.sql。
4、启动后端服务
5、完成
示例:win系统5.2.0版升级到5.4.0
cmd
[程序根目录]
├── xmky-exam-5.2.0.jar
├── config/
├── application.yml
├── logo.png
├── h5/
├── assets
├── img
├── config.js
├── index.html
└── m/
├── assets
└── static/
└── config.js
├── uni_modules
├── index.html
1、关闭java后台服务
2、打开dos窗口
3、备份考试库5.2.0:mysqldump -uroot -proot xmky_exam > D:\xmky_exam-5.2.0-bak.sql
4、升级考试库到5.3.0:mysql -uroot -proot xmky_exam < D:\soft\exam-master\db\mysql\5.2.0 - 5.3.0.sql
5、升级考试库到5.4.0:mysql -uroot -proot xmky_exam < D:\soft\exam-master\db\mysql\5.3.0 - 5.4.0.sql
6、前后端编译打包替换旧文件
7、后台更新配置文件:./config/application.yml (最好重新配置,因为新增的属性在旧版本不存在,会导致报错)
8、PC端更新配置文件:./h5/config.js (或者直接使用5.2.0版本的./h5/config.js覆盖)
9、移动端更新配置文件:./m/static/config.js (或者直接使用5.2.0版本的./m/static/config.js覆盖)
10、启动java后台服务:java -jar xmky-exam-5.4.0.jar