B053 项目部署
目录
- Linux简介
- 虚拟机软件安装
- 安装centos
- 步骤
- 备份系统
- 网络设置
- 远程访问Linux
- 步骤
- 永久关闭CentOS防火墙
- linux命令
- linux文件系统
- linux常用命令
- 目录相关命令
- 文件相关命令
- 安装JDK
- 先卸载自带的JDK
- 安装JDK
- 复制压缩包到linux
- 解压
- 配置环境变量
- 安装MySql
- 清理旧文件
- 安装mysql
- Mysql编码集设置
- 增加Mysql远程登录权限
- 安装tomcat
- 部署web项目到tomcat
Linux简介
见文档
虚拟机软件安装
用vmware虚拟机软件
步骤:
解压vmware压缩包,
双击 高版本的vm15文件夹 中 完整版的VMware-workstation-full-15.5.0-14665864.exe
更改安装目标文件夹到D:\soft\vm\vm
点击许可证准备破解,打开vm15/注册机里的KeyGen.exe文件生成许可证号去输入
右键网络打开"网络和Internet设置",点击更改适配器选项,如果能看到VMnet1和VMnet8代表安装成功
安装centos
步骤
在vmware里创建新的虚拟机
自定义,
勾选稍后安装操作系统,
选linux,CentOS 7 64位,
位置选D:\soft\vm\CentOs
运行内存可以分配1-2个g,(吃本机运行内存)
网络连接可先选默认的nat模式
创建新虚拟磁盘可分配40个g,勾选将虚拟磁盘拆分成多个文件
完成虚拟机创建
点击CD/DVD (IDE) 自动检测,选择使用ISO映像文件 - CentOS-7-x86_64-DVD-2003.iso
开启此虚拟机
Install CentOS 7
下压
选择中文简体
软件 安装源 - (感叹号要点击去确认一下,后面同理)
软件选择不选最小安装–只能黑窗口不能看到桌面,勾选GNOME桌面,
KDUMP:在系统崩溃时做备份,会占用内存空间,可不选
网络和主机名:开启以太网,主机名可设置为localhost,
开始安装
用户设置:root是最大用户,有最高权限,密码可设为123456点两次完成,普通用户可不创建就用root就行,也可设置一个tom,123456
安装完CentOS7后点重启
完成,未接收许可 - 进去点同意
完成配置
不用tom,点未列出,用root账号登录
前进,跳过,开始使用CentOS Linux
备份系统

万一崩了可以恢复
网络设置
CentOS桌面单击右键 打开终端 输入ifconfig可看到IP
两台电脑能不能互通网络就看能不能ping的通IP
nat模式:虚拟机IP由主机分配,主机能联网虚拟机就能联网,虚拟机能ping通别的IP,别的IP不能ping通虚拟机,单向访问

桥接模式:主机和虚拟机的IP都由交换机分配下来,是分别独立的,可以互相访问,前边网段相同,会占用后面的网段

远程访问Linux
用xmanager
步骤
双击Xmanager4_setup.1410342608.exe,

安装完成
打开Xmanager
打开Xshell,新建会话/新建连接,输入CentOS的IP (打开终端 ifconfig ens33下第二行),输入root账号密码,连接
[root@localhost ~]#
含义:用root(之前设置的最高权限账号)连接到localhost(之前自定义的名称)成功
然后可在此窗口输入命令远程操作linux,相当于在linux本地右键打开终端输入命令操作

上图所示可解决中文乱码问题
永久关闭CentOS防火墙
远程访问linux时,需要关闭防火墙,否则访问linux上的tomcat,mysql等服务可能会失败;
查看防火墙状态: systemctl status firewalld.service(绿的running表示防火墙开启)
执行关闭命令(立即关闭 - 立即生效): systemctl stop firewalld.service
再次执行查看防火墙命令:systemctl status firewalld.service
执行开机禁用防火墙自启命令(永久关闭 - 重启生效): systemctl disable firewalld.service
开启防火墙:systemctl start firewalld.service
linux命令
linux文件系统
见文档
-linux没有图形化界面,一切都用命令
Linux有个基本思想:一切都是文件。
linux系统的目录结构是一个以/(根目录)为根节点的树形结构:
linux常用命令
pwd:查看当前所在目录的绝对路径
cd
cd…:回到上一级
cd /:回到根目录
tab:补全
ls:查看目录信息
ll:查看目录详细信息
ls –a:列出所有文件和文件夹,包含隐藏文件
ls -al:以详细信息方式列出所有文件信息,包含隐藏文件
whoami:查看当前操作用户
who am i:查看当前登录用户(有可能是有多个的)的信息
su 用户名:切换用户
目录相关命令
cd /bin:进入根目录下的bin文件夹
cd bin:进入当前目录下的bin文件夹
cd ./bin:进入当前目录下的bin文件夹,./可省略
mkdir 目录名:创建一个目录
mkdir -p 目录1/目录2/目录3:递归创建目录
rm -rf 路径:可以删除文件和目录,-r(递归) -f(暴力)
mv dir1 dir2:如果dir2存在,将dir1目录移动到dir2中,如果dir2不存在,将dir1目录名修改为dir2(重命名)
cp -rf dir1 dir2:将dir1复制一份到dir2目录(包含目录内容一起复制)
cp -rf dir1/* dir2:直接复制内容(非常重要)
tar -czvf tom.tar.gz tom:-- 打包
tar -xzvf tom.tar.gz -C /usr/local:-- 解包
文件相关命令
touch 文件:创建一个文件
vi filename:打开filename文件
按 i 进入编辑,按 ESC 退出编辑,输入 :wq 保存并退出
:q:退出编辑器,如果文件已修改请使用下面的命令 ,q(quit)
:q!:退出编辑器,且不保存
安装JDK
先卸载自带的JDK
一般会自带jdk,不确定可以输入java -version查看
检测系统自带的jdk安装包
[root@localhost ~]# rpm -qa|grep java
或者
[root@localhost ~]# rpm -qa|grep jdk
如何删除自带的openjdk
[root@localhost ~]# rpm -e --nodeps opeanjdk的包名
然后可以再输两种命令查看是否完成卸载
安装JDK
复制压缩包到linux
第一步:由于linux中安装程序一般安装在/user/local下
[root@localhost ~]# cd /usr/local
然后可以从Windows拖拽文件过去

也可以用Xftp传输

解压
tar -zxvf /usr/local/src/jdk-8u151-linux-x64.tar.gz -C /usr/local/
tar -zxvf ./jdk-8u151-linux-x64.tar.gz -C ./
tar -zxvf jdk-8u151-linux-x64.tar.gz -C ./ √
配置环境变量
进入jdk的bin目录,输入pwd命令找到绝对路径
输入编辑命令编辑根目录下的文件
vi /etc/profile
输入i表示insert,到文件末行粘贴
export JAVA_HOME=/usr/local/soft/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
按ESC退出编辑,输入:wq保存并退出
输入命令重新加载配置文件让改动生效
source /etc/profile
测试安装效果:java -version
安装MySql
清理旧文件
查看当前安装mysql情况,如果有就先卸载旧的
rpm -qa|grep -i mysql
查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysqlrm -rf 上面的目录
安装mysql
注意:这种安装需要下载,所以需要联网,如果网速不好会导致安装失败,所以安装之前建议先快照,mysql安装失败之后可以恢复到指定的快照版本,重新来一次
切换到/usr/local/soft
cd /usr/local/soft
下载mysql的rpm源码包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装mysql
yum install mysql-server
启动mysql服务
systemctl start mysqld
查看Mysql状态
systemctl status mysqld
Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来设置root用户的密码
mysqladmin -u root password "你自己想设置的数据库密码"
连接到Mysql服务器
mysql -uroot -p你刚刚设置的密码
Mysql编码集设置
查看默认字符集
mysql> show variables like 'character_set%';
复制会话:可一边看mysql一边输入其他命令操作
右键会话标签 - 复制SSH渠道
修改字符集,修改 /etc/my.cnf文件
vi /etc/my.cnf
输入i编辑,在[mysqld]处将下面的配置拷贝进去,并删除原来的[mysqld]
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
按ESC退出编辑模式,输入:wq保存退出
在左侧mysql页面输入exit;退出连接
输入 systemctl restart mysqld 重启 mysql
再次连接mysql,查看字符集编码
[root@localhost local]# mysql -uroot -p你刚刚设置的密码
mysql> show variables like 'character_set%';
增加Mysql远程登录权限
进入mysql,授权远程连接
mysql> grant all privileges on *.* to root@'%' identified by '123456';
刷新授权
mysql> flush privileges;
然后用虚拟机的ip可以本地navicat进行连接了
安装tomcat
将之前已经通过拖拽或Xftp上传的tomcat压缩包解压到指定目录
[root@localhost soft]# tar -zxvf apache-tomcat-8.5.15.tar.gz -C ./
进入tomcat文件夹启动tomcat
[root@localhost soft]# cd apache-tomcat-8.5.15/
[root@localhost apache-tomcat-8.5.15]# cd bin/
[root@localhost bin]# ./startup.sh
测试
通过ifconfig查看linux服务器ip,再浏览器访问http://服务器ip:8080/
部署web项目到tomcat
方式一,把当前项目打成war包放到webapps目录下,能自动解压(相当于吧项目原文件直接拖过来),
会默认在url上加上项目名,localhost:cms/system/index,其他目录如static下文件可能不生效,因为这些url也都需要都加上项目名称
方式二,tomcat下面conf文件夹,server.xml配置,
<Context docBase="D:\WorkspaceOfEclipse\cms06\src\main\WebContent" path="" />
推荐第二种方式
方式一测试:
eclipse中右键项目,Export,WAR file,把项目导出成war包
把war包通过拖拽或Xftp拖到服务器tomcat的webapps目录下,
切换到bin目录下重启tomcat
[root@localhost bin]# ./shutdown.sh
[root@localhost bin]# ./startup.sh
浏览器访问http://服务器IP:8080/cms06/
方式二测试:
清理环境:关闭tomcat,删除方式一时弄进去的项目war包和自动解压的项目文件
[root@localhost webapps]# rm -rf ./cms06
[root@localhost webapps]# rm -rf ./cms06.war
1.把本地项目拖到服务器中某个自定义文件夹下

2.修改服务器中tomcat的server.xml
复制服务器项目中的WebContent路径,
编辑server.xml,修改默认端口为80,加入配置路径
<Context docBase="/usr/local/code/cms06/src/main/WebContent" path=""/>
启动tomcat,浏览器直接输入服务器端口号访问

3.修改服务器中项目的 jdbc.propertise 连接服务器中的 mysql
注意是两个文件,包含/usr/local/code/cms06/src/main/WebContent/WEB-INF/classes里的jdbc.propertise

4.复制本地mysql的数据到服务器的mysql中

重启tomcat
浏览器访问服务器IP

浏览器访问http://服务器IP/system/skjgf

相关文章:
B053 项目部署
目录 Linux简介虚拟机软件安装安装centos步骤备份系统网络设置 远程访问Linux步骤永久关闭CentOS防火墙 linux命令linux文件系统linux常用命令目录相关命令文件相关命令 安装JDK先卸载自带的JDK安装JDK复制压缩包到linux解压配置环境变量 安装MySql清理旧文件安装mysqlMysql编码…...
视觉Slam面试题(不定时更新)
文章目录 0 引言1 单目、双目、深度相机和RGBD相机的区别2 特征点法与直接法的优缺点3 等距变换、相似变换、仿射变换、射影变换的区别4 单应矩阵、本质矩阵和基础矩阵的区别5 Slam中为什么用李群李代数6 解释Slam中的绑架问题7 ORB、SIFT和SURF特征点检测算法的区别8 什么是对…...
从入门到进阶 之 ElasticSearch 节点配置 集群篇
🌹 以上分享 ElasticSearch 安装部署,如有问题请指教写。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有需要,请👍点赞💖收藏🐱&a…...
UE4中无法保存项目问题
系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 取消:停止保存所有资产并返回编辑器。 重试:尝试再次保存资产。 继续:仅跳过保存该资产。 当我点击继续时,关闭项目,然后重新打开项目,发现之前…...
解剖—顺序表相关OJ练习题
目录 一、删除有序数组中的重复项,返回出现一次元素的个数。 二、原地移除数组中所有数值等于val的元素 三、合并两个有序数组 四、旋转数组 五、数组形式的整数加法 一、删除有序数组中的重复项,返回出现一次元素的个数。 26. 删除有序数组中的重…...
NAT网关在阿里云的应用
NAT网关(Network Address Translation Gateway)是一种网络地址转换服务,提供NAT代理(SNAT和DNAT)能力。NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决I…...
操作系统体系结构和OS
1.冯诺依曼计算机体系 关于冯诺伊曼系统,在这里我只是简单讲一讲,更加详细的内容可以看我的计算机组成系列。 常见的笔记本、台式机,不常见的服务器、工作站,大部分都遵守“冯诺依曼体系”,因此该计算机体系就是现代…...
Flutter ☞ 常量
常量 只能被定义一次,并且不可修改的值叫做常量。 在 Flutter 中有两种常量修饰方法 finalconst 相同点 类型声明可以省略 final String a 123; final a 123;const String a 123; const a 123;初始化后不能再赋值 final a 123; a abc; // 错误const a …...
C++ 配置VSCode开发环境
C配置VSCode开发环境 简介 Visual Studio Code (VSCode) 是一款开源的轻量级代码编辑器。它支持许多编程语言,包括C。本文档将详细介绍如何在Windows环境下配置VSCode的C开发环境。 安装步骤 1. 安装Visual Studio Code 首先,你需要下载并安装Visua…...
Arduino_STM32整理贴
Arduion-STM32 stm32duino 让stm32 在arduino中使用 源代码:https://github.com/stm32duino/Arduino_Core_STM32 busybox文件位置 stm32duino 下有个stm32tool 项目,内含有busybox.exe 使用usb转TTL烧写 使用 PA9 PA10 端口 PA9接 RX ,PA10接 TX …...
MoeCTF 2023 Web+Jail wp
----------签到---------- hello CTFer 给了一个URL,是赛博厨子解码base64的flag,flag直接给了。 远程端口转发: 这次比赛估计好多大师傅都没参加,题目环境是在本机内网上的(比如localhost:52005)导致请…...
494.目标和 474.一和零
目标和 题目 给一个都是正整数的组合,然后你可以在里面任意添加或-,求使得最后结果为 目标和S(target)的有多少种方法? 范围 数组非空,且长度不会超过 20 。初始的数组的和不会超过 1000 。保证返回的…...
模拟电源与数字电源之间的区别
BOSHIDA 模拟电源与数字电源之间的区别 模拟电源与数字电源是两种不同的电源类型,其核心区别在于电源控制方式和输出特性。本文将从这两方面对模拟电源和数字电源进行比较和分析。 电源控制方式: 模拟电源的控制方式以模拟电压和模拟电流为基础。模拟电…...
P5461 赦免战俘
题目描述 现有 2 n 2 n ( n ≤ 10 ) 2^n\times 2^n (n\le10) 2n2n(n≤10) 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 4 个更小的正方形矩阵,每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵…...
【工具】转码silk格式为mp3
【工具】转码slk格式为mp3 前提 安装 ffmpeg 【安装】Linux安装ffmpeg_linux安装ffmpeg4.4_我是Superman丶的博客-CSDN博客 GitHub - kn007/silk-v3-decoder: [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to o…...
蓝桥杯每日一题2023.10.18
题目描述 特别数的和 - 蓝桥云课 (lanqiao.cn) 题目分析 简单枚举每一个可行的数 #include<bits/stdc.h> using namespace std; int flag, ans; int main() {int n;cin >> n;for(int i 1; i < n; i ){flag 0;int x i;while(x){int y x % 10;if(y 2 || y…...
大数据开发中的秘密武器:探索Hadoop纠删码的奇妙世界
随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了系统的可靠性,HDFS通过复制来实现这种机制。但在HDFS中每一份数据都有两个副本,这也使得存储利用率仅为1/3,每TB数据都需要占用3TB的存储空间。因此&…...
华为数通方向HCIP-DataCom H12-831题库(单选题:301-310)
第301题 关于配置防火墙安全区域的安全级别的描述,错误的是 A、同一系统中,两个安全区域不允许配置相同的安全级别 B、只能为自定义的安全区域设定安全级别 C、安全级别一旦设定不允许更改 D、新建的安全区域,系统默认其安全级别为1 答案:D 解析: 新创建的安全区域缺省未…...
Vite 踩坑 —— require is not defined
动态require引入图片报错 require 是属于 Webpack 的方法,而我使用的是 Vite,所以我们需要去寻找 Vite 静态资源处理的方法 所以,我们只需要将代码改写以下形式即可。 template <CarouselItem v-for"(item,index) of carous…...
彻底理解操作系统与内核的区别!
通用底盘技术 Canoo公司有一项核心技术专利,这就是它们的通用电动底盘技术,长得是这个样子,非常像一个滑板: 这个带轮子、有电池、能动的滑板已经包含了一辆车最核心的组件,差的就是一个外壳。这个看起来像滑板的东西…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...
aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...
spring boot使用HttpServletResponse实现sse后端流式输出消息
1.以前只是看过SSE的相关文章,没有具体实践,这次接入AI大模型使用到了流式输出,涉及到给前端流式返回,所以记录一下。 2.resp要设置为text/event-stream resp.setContentType("text/event-stream"); resp.setCharacter…...
