云计算实战项目之---学之思在线考试系统

news2024/11/27 6:41:45

简介:

学之思开源考试系统是一款 java + vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序,能覆盖到pc机和手机等设备。 支持多种部署方式:集成部署、前后端分离部署、docker部署。

集成部署

环境版本下载地址
NodeJs16https://nodejs.org/download/release/latest-v16.x/
Jdk1.8https://www.oracle.com/java/technologies/downloads/
Mysql8.0/5.7https://dev.mysql.com/downloads/

数据库脚本下载地址:https://www.mindskip.net:999,创建表初始化数据,数据库名称为xzs
代码下载 mysql版本,配合相应的数据库使用
安装mysql ,导入xzs-mysql.sql脚本
学生端默认账号:student / 123456
管理端默认账号:admin / 123456

实操

所有操作都在一台服务器实施,前后端不分离

安装打包工具

安装jdk

[root@web-nginx ~]# tar xzvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@web-nginx ~]# mv /usr/local/jdk1.8.0_221/ /usr/local/java

配置环境变量
[root@web-nginx ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

重载环境变量
[root@web-nginx ~]# source /etc/profile

查看java是否安装成功
[root@web-nginx ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

安装maven

[root@web-nginx ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz

解压并改名
[root@web-nginx ~]# tar xzvf apache-maven-3.8.8-bin.tar.gz -C /usr/local/
[root@web-nginx ~]# mv /usr/local/apache-maven-3.8.8/ /usr/local/maven

设置环境变量
[root@web-nginx ~]# vim /etc/profile
MAVEN_HOME=/usr/local/maven
PATH=$PATH:$MAVEN_HOME/bin
export MAVEN_HOME PATH

重载环境变量
[root@web-nginx ~]# source /etc/profile

检测maven是否安装成功
[root@web-nginx ~]#  mvn -version
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /usr/local/maven
Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

安装node.js前端打包工具命令npm

[root@web-nginx ~]# wget https://nodejs.org/download/release/latest-v16.x/node-v16.20.2-linux-x64.tar.xz
[root@web-nginx ~]# tar xf node-v16.20.2-linux-x64.tar.xz -C /usr/local/
[root@web-nginx ~]# cd /usr/local/
[root@web-nginx local]# mv node-v16.20.2-linux-x64/ node

配置环境变量
[root@web-nginx ~]# vim /etc/profile
NODE_HOME=/usr/local/node
PATH=$NODE_HOME/bin:$PATH
export NODE_HOME PATH

重载环境变量
[root@web-nginx ~]# source /etc/profile

查看是否安装成功,查看版本
[root@web-nginx ~]# node --version
v16.20.2

获取源代码

安装Git命令获取源代码

[root@web-nginx ~]# yum install -y git

获取clone代码

[root@web-nginx ~]# git clone https://gitee.com/hyunze/xzs-mysql.git

安装mysql5.7

[root@web-nginx ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@web-nginx ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm 
[root@web-nginx ~]# vim /etc/yum.repos.d/mysql-community.repo 
将mysql8.0关闭将mysql5.7开启
enabled=1
gpgcheck=0
[root@web-nginx ~]# yum install -y mysql-community-server

启动mysql
[root@web-nginx ~]# systemctl start mysqld

过滤第一次登录所需的密码
[root@web-nginx ~]# grep pass /var/log/mysqld.log 

改密码
[root@web-nginx ~]# mysqladmin -uroot -p'HdV>.f>Ir8;h' password 'QianFeng@123!'
[root@web-nginx ~]# mysql -uroot -p'QianFeng@123!'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.31 MySQL Community Server (GPL)
...


创建数据库xzs
mysql> create database xzs character set utf8 collate  utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

设置root允许远程登录
mysql> update mysql.user set host = '%' where user = 'root';
Query OK, 1 row affected (0.10 sec)
Rows matched: 1  Changed: 1  Warnings: 0

刷新权限
mysql> flush privileges;

mysql> \q
Bye

配置mysql环境

修改mysql

[root@web-nginx ~]# vim xzs-mysql/source/xzs/src/main/resources/application-prod.yml
logging:
  path: /usr/log/xzs/

spring:
  datasource:
    url: jdbc:mysql://192.168.1.101:3306/xzs?useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&allowMultiQueries=true
    username: root
    password: QianFeng@123!
    driver-class-name: com.mysql.cj.jdbc.Driver


#####url那一行 ip改为自己做实验服务器的ip,/  ?的名字改为自己之前创建数据库的名字。password改为远程登录MySQL数据库的密码

导入初始化mysql

[root@web-nginx ~]# mysql -uroot -p'QianFeng@123!' xzs < xzs-mysql/sql/xzs-mysql.sql 

前端打包

学生端

[root@web-nginx ~]# cd xzs-mysql/source/vue/xzs-student/

打包
[root@web-nginx xzs-student]# npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
[root@web-nginx xzs-student]# npm install --registry https://registry.npm.taobao.org  
[root@web-nginx xzs-student]# npm run build
[root@web-nginx xzs-student]# cp -r student xzs-mysql/source/xzs/src/main/resources/static

管理端

[root@web-nginx ~]# cd xzs-mysql/source/vue/xzs-admin/

打包
[root@web-nginx xzs-admin]# npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
[root@web-nginx xzs-admin]# npm install --registry https://registry.npm.taobao.org  
[root@web-nginx xzs-admin]# npm run build
[root@web-nginx xzs-admin]# cp -r admin xzs-mysql/source/xzs/src/main/resources/static

将java程序打包成jar包

这时候进行打包,所使用的镜像源是国外的源,因此会导致打包时间巨长,打包超时,打包失败,为了杜绝这种现象,我们可以采用阿里云的镜像源

打开   maven镜像_maven下载地址_maven安装教程-阿里巴巴开源镜像站 (aliyun.com)icon-default.png?t=N7T8https://developer.aliyun.com/mirror/maven?spm=a2c6h.13651102.0.0.3e221b11gh5cgw

配置maven的配置文件,替换镜像源

 vim  /usr/local/maven/conf/settings.xml 

将源文件里的内容替换为

这时开始打包  速度就会很快

[root@web-nginx ~]# cd xzs-mysql/source/xzs
[root@web-nginx xzs]# mvn package

服务上线

[root@web-nginx ~]# mkdir -p /application/java-server
[root@web-nginx ~]# cp xzs-mysql/source/xzs/target/xzs-3.9.0.jar /application/java-server
[root@web-nginx ~]# cd /application/java-server

让服务在后台运行
[root@web-nginx java-server]# nohup java -Duser.timezone=Asia/Shanghai -jar -Dspring.profiles.active=prod  xzs-3.9.0.jar  > start1.log  2>&1 &

成功运行的日志显示

访问

学生端访问地址为:http://ip:8000/student

管理员端访问地址为:http://ip:8000/admin​​​​​​

学生端默认账号:student / 123456

管理端默认账号:admin / 123456

实验中遇到问题

1.mysql设置root允许远程登录,语法出现错误

2.学生端及管理端进行打包时,注意路径的使用

3.在后端打包时,如果使用国外的源,可以替换为阿里云的镜像源,提升打包成功率。

4.养成观察日志的习惯,遇到错误在日志中寻找错误原因

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1173041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL Too Many Connections

一、前言 上一篇 《磁盘爆了》 我们讲磁盘撑爆造成Java应用无法启动&#xff0c;今天我们来讲一下MySQL连接被撑爆应用启动后连不上数据库的问题。 二、max_connections配置 我们自己安装的开源MySQL5.6 默认的max_connections(最大连接数)值为151&#xff0c;为什么是151咱…

【MongoDB】索引 - 数组字段的多键索引

数组字段创建索引时&#xff0c;MongoDB会为数组中的每个元素创建索引键&#xff08;多键索引&#xff09;&#xff0c;多键索引支持数组字段的高效查询。 一、准备工作 这里准备一些数据 db.shop.insertMany([{_id: 1, name: "水果店1", fruits: ["apple&qu…

Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8

本篇作为《VueOpenLayers入门教程》和《VueOpenLayers实战进阶案例》所有文章的二合一汇总目录&#xff0c;方便查找。 本专栏源码是由OpenLayers结合Vue框架编写。 本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程&#xff0c;再到通过各种入门案例和综合…

Go语言与Python语言的性能比较

目录 一、背景与意义 二、执行速度 三、内存消耗 四、并发性能 五、编译速度与开发效率 六、综合考虑 七、应用场景 八、未来发展趋势 总结 一、背景与意义 在编程世界中&#xff0c;Go语言和Python语言都占有一席之地。Go语言是由Google开发的&#xff0c;其设计初衷…

GNSS精密解算软件介绍

GAMIT&#xff1a; 美国麻省理工学院&#xff08;MIT&#xff09;和加州大学圣地亚哥分校的海洋研究所&#xff08;SIO&#xff09;开发的GAMIT/GLOBK软件&#xff0c; GAMIT为双差网解&#xff0c;利用双差直接消除卫星及测站的时间误差。 gamit软件介绍-周命端&#xff1a;…

Technology strategy Pattern 学习笔记4 - Creating the Strategy-Corporate Context

Creating the Strategy-Corporate Context 1 •. Stakeholder Alignment 1.1 要成功&#xff0c;要尽可能获得powerful leader的支持 1.2 也需要获得最高执行层的支持 1.3 Determining&#xff08;确定&#xff09; Stakeholders 需要建立360度组织图&#xff0c;确认三类人…

unity中移动方案--物理渲染分层

一、三种基本移动方案 unity中的移动分为Transform和Rigidbody以及CharacterController&#xff0c;其中CharacterController已经考虑了穿墙&#xff0c;贴墙走等情况。 1.使用transform,直接修改位置&#xff0c;无视碰撞 1.transform.position 2.transform.Translate 2.使用…

Paragon NTFS for Mac15.5磁盘存储软件

NTFS For Mac 15是首个支持Mac上读写NTFS外置存储设备解决方案 &#xff0c;解决mac不能读写外置让您更加简单直观的在Mac机上随意对NTFS文件修改、删除等操作。 NTFS for Mac是什么 在选择一款合适自己的NTFS or Mac软件之前&#xff0c;您可以简单地对NTFS or Mac进行一个了…

(免费领源码)PHP#MySQL高校学生信息管理系统28099-计算机毕业设计项目选题推荐

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用php技术建设学生信息管理系统设计。…

【兔子王赠书第6期】Python机器学习实战:基于Scikit-learn与PyTorch的神经网络解决方案

文章目录 前言推荐图书写给读者内容简介本书目录本书特色推荐理由 粉丝福利结语 前言 粉丝福利又双叒叕来喽&#xff0c;小伙伴们快来看看吧&#xff01; 推荐图书 《Python机器学习实战&#xff1a;基于Scikit-learn与PyTorch的神经网络解决方案》 京东直购链接&#xff1…

二维码智慧门牌管理系统升级:一键报错解决三大问题

文章目录 前言一、一键报错功能解决了三大问题二、提高效率和便捷性 前言 随着科技的不断发展&#xff0c;智能化管理已经深入到社会的各个角落&#xff0c;其中二维码智慧门牌管理系统在社区、酒店、写字楼等场所的应用尤为广泛。为了更好地提升管理系统效率和解决实际问题&a…

Linux生成静态库

GCC 什么是GCC GCC 是 GNU 编译器集合&#xff08;GNU Compiler Collection&#xff09;的缩写。它是一个开源的编程语言编译器&#xff0c;支持多种编程语言&#xff0c;包括 C、C、Objective-C、Fortran、Ada 和 Go 等。GCC 最初由理查德斯托曼&#xff08;Richard Stallman…

VEX —— Quaternion|Euler Angle

目录 一&#xff0c;四元数相关概念 四元数 欧拉角 常用四元数相关函数 相互转换 二&#xff0c;案例 案例&#xff1a;沿面中心翻转 案例&#xff1a;路径导弹 一&#xff0c;四元数相关概念 四元数 在vex内四元数为&#xff08;&#xff08;x&#xff0c;y&#xff0…

vmware--主机win11 samba 映射虚拟机ubuntu共享文件夹

参考链接 1.效果如下图 2.教程 2.1 win11开启 smb 忽略… 2.2 vmware–ubuntu 安装 samba sudo apt update sudo apt install samba2.3 vmware–ubuntu 验证 安装成功 ppan:~$ whereis samba samba: /usr/sbin/samba /usr/lib/x86_64-linux-gnu/samba /etc/samba /usr/sh…

《向量数据库指南》——用了解向量数据库Milvus Cloud搭建高效推荐系统

了解向量数据库 ANN 搜索是关系型数据库无法提供的功能。关系型数据库只能用于处理具有预定义结构、可直接比较值的表格型数据。因此,关系数据库索引也是基于这一点来比较数据。但是 Embedding 向量无法通过这种方式直接相互比较。因为我们不知道向量中的每个值代表什么意思,…

【LeetCode:187. 重复的DNA序列 | 滑动窗口 map】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

ssm整合原理与实战

文章目录 前言一、SSM整合原理1.1 什么是SSM整合1.2 SSM整合核心问题1.2.1 第一问&#xff1a;SSM整合需要几个IoC容器&#xff1f;1.2.2 第二问&#xff1a;每个IoC容器对应哪些类型组件&#xff1f;1.2.3 第三问&#xff1a;IoC容器之间关系和调用方向&#xff1f;1.2.4第四问…

CSS画圆以及CSS实现动态圆

CSS画圆以及CSS实现动态圆 1. 先看基础&#xff08;静态圆&#xff09;1.1 效果如下&#xff1a;1.2 代码如下&#xff1a; 2. 动态圆2.1 一个动态圆2.1.1 让圆渐变2.1.2 圆渐变8秒后消失2.1.3 转动的圆&#xff08;单个圆&#xff09; 2.2 多个动态圆 1. 先看基础&#xff08;…

LangChain+LLM实战---部署本地大模型(基于Langchain)

原文&#xff1a;Training Your Own LLM using privateGPT 作者&#xff1a;Wei-Meng Lee 了解如何在不向提供者公开私有数据的情况下训练自己的语言模型 使用公共AI服务(如OpenAI的ChatGPT)的主要问题之一是将您的私人数据暴露给提供商的风险。对于商业用途&#xff0c;这仍然…

K8S知识点(三)

&#xff08;1&#xff09;环境搭建-环境初始化 Centos的版本是有要求的必须是7.5或以上&#xff0c;否则安装出来的集群是有问题的Node节点可能加入不到集群中来 详细步骤 1.同时连接三台服务器&#xff1a;查看一下版本 是否正确 2.主机名解析&#xff0c;方便节点之间的…