手把手教你将项目部署到服务器!
一、导入centos7虚拟机:
打开VMWare,点击“打开虚拟机”,选择centos7.ova之后,选择存储路径:
点击导入:
选择“不再显示此消息”,点击“重试”按钮:
点击“编辑虚拟机设置”,修改处理器、内存、硬盘等信息后,启动
按Ctrl+Alt键可以切换到windows下。
启动成功后,输入账号root密码123456登录。
二、配置IP地址:
先在VMWare里设置好网络连接方式为桥接模式:
有关于centos7获取IP地址的方法主要有两种,1:动态获取ip;2:设置静态IP地址。
1、动态获取ip(前提是你的路由器已经开启了DHCP)
修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 (最后一个为网卡名称)
动态获取IP地址需要修改两处地方即可
(1)bootproto=“dhcp”
(2)onboot=“yes”
修改后重启一下网络服务即可 systemctl restart network
[root@mini ~]# systemctl restart network
[root@mini ~]#
这样动态配置IP地址就设置好了,这个时候再查看一下ip addr 就可以看到已经获取了IP地址,且可以上网(ping 百度)
2、设置固定ip
BOOTPROTO=“static”
IPADDR=“192.168.0.121” #你想要设置的固定IP,理论上192.168.1.4-192.168.1.253之间都可以,请自行验证;
NETMASK=“255.255.255.0” #子网掩码,不需要修改;
GATEWAY=“192.168.0.1” #网关,这里是VMware网关IP地址,前面要你记录下的那个IP。
DNS1=“114.114.114.114” #这个是国内的DNS地址,是固定的;
三、各种坑:
1、systemctl restart network报错
Job for network.service failed. See ‘systemctl status network.service’ and ‘journalctl -xn’ for details.
2、ping不通百度
四、解决办法:
1、 排除ip冲突
用主机ping这个ip看是否已存在。
2、删除多余的网卡配置文件
删除ifcfg-e开头的多余的网卡配置文件
rm -f /etc/sysconfig/network-scripts/ifcfg-eXXX
3、HWADDR错误 ,查到正确的HWADDR
输入 ip addr,查找到HWADDR
进入 cd /etc/sysconfig/network-scripts 目录编辑对应的 vim ifcfg-ensXX,将HWADDR设置正确,重启 service network restart
或者删除HWADDR。
00:0c:29:ad:24:51
4、将ifc-ethXX中的DEVICE 那一行注释掉,或者删掉
5、将ifcfg-xxx中的NAME改为和文件名一致
5、删除网卡的UUID
6、停止NetworkManager.service
停止网络管理服务
[root@localhost Desktop]# systemctl stop NetworkManager.service
[root@localhost Desktop]# systemctl disable NetworkManager.service
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
重启network服务
[root@localhost network-scripts]# service network restart
Restarting network (via systemctl): [ OK ]
7、删除设备规则配置文件
无论有无这文件,删就是了
rm -f /etc/udev/rules.d/70-persistent-net.rules
8、打开VMWare的虚拟机服务
9、看VMWare右下角的网络适配器是否连接,如果没有连接则连接上
10、重启大法
如果以上都没有解决,还有最后一招-- 重启 看一看有没有奇迹发生!
五、无论如何还是不行:
1、使用NAT模式
2、先改为动态获取ip地址
3、查看当前DNS
cat /etc/resolv.conf
4、改为静态ip
5、更新完需要的软件后可再次改回桥接模式
六、CentOS7下安装JDK1.8:
1、检查是否已经安装了jdk
键入命令 java -version 查看。
2、下载JDK
下载地址https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
往下拉
3、上传到centos
将本地d:/tmp/jdk-8u281-linux-x64.tar.gz上传到/usr下,重命名为java1.8:
本地目录切换到d:/tmp1
sftp>lcd d:/tmp1
centos目录切换到/usr
sftp>cd /usr
查看本地目录
sftp> lpwd
d:/tmp
查看centos目录
sftp> pwd
/usr
上传
sftp> put jdk-8u281-linux-x64.tar.gz
重命名
sftp> mv jdk-8u281-linux-x64.tar.gz java1.8
4、解压安装JDK
键入命令 cd /usr 来到刚才的复制文件处,键入命令tar -zxvf java1.8 进行解压,解压出一个文件夹jdk1.8.0_281,进入该文件夹
5、配置JDK环境变量
键入命令 vi /etc/profile 修改配置文件,记得要在root权限下修改
输入i进入编辑状态,然后将光标移到最后一行,粘贴如下内容,JAVA_HOME=/usr/jdk1.8.0_281 要根据自己的解压目录设置
#java environment
export JAVA_HOME=/usr/jdk1.8.0_281
export CLASSPATH=.:J A V A H O M E / j r e / l i b / r t . j a r : {JAVA_HOME}/jre/lib/rt.jar:JAVA
HOME/jre/lib/rt.jar:{JAVA_HOME}/lib/dt.jar:J A V A H O M E / l i b / t o o l s . j a r e x p o r t P A T H = {JAVA_HOME}/lib/tools.jar export PATH=JAVA
HOME/lib/tools.jarexportPATH=PATH:${JAVA_HOME}/bin
效果如下
点击esc 进入命令模式 输入:wq 保存修改信息
然后键入命令source /etc/profile 使配置文件生效。
6、测试是否安装成功
键入命令 java -version 查看。
七、centos7下安装mysql5.7:
1、安装wget
yum -y install wget
2、下载rpm包
sudo wget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-10.noarch.rpm
3、yum 安装mysql-community-server
sudo yum -y install mysql-community-server
这一步比较耗时
4、启动mysql
sudo systemctl start mysqld
5、设置开机启动
sudo systemctl enable mysqld
6、查找初始密码
在/var/log/mysqld.log文件中找到初始密码
cat /var/log/mysqld.log
此处初始密码为:waf_eHWkr42K
7、登陆mysql
sudo mysql -uroot -p
输入初始密码:waf_eHWkr42K
8、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz!QAZ';
密码强度默认规则为(长度最少8位,包含大小写字母、数字、特殊字符)
9、设置允许远程登陆
1.执行授权命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1qaz!QAZ' WITH GRANT OPTION;
2.退出mysql操作控制台
exit
3.开放3306端口
开启防火墙
sudo systemctl start firewalld.service
永久开放3306端口
sudo firewall-cmd --add-port=3306/tcp --permanent
重新加载
sudo firewall-cmd --reload
关闭防火墙
sudo systemctl stop firewalld.service
10、设置默认编码为utf8
查看修改前mysql编码
show variables like '%chara%';
1
修改/etc/my.cnf文件,加入下面两行
sudo vi /etc/my.cnf
character_set_server=utf8
init_connect='SET NAMES utf8'
修改后,重启mysql
sudo systemctl restart mysqld
查看修改后的mysql编码
11、测试
使用navicat连接mysql
数据文件位置:/var/lib/mysql
配置文件位置:/etc/my.cnf
日志文件位置:/var/log/mysqld.log
八、centos7实现springboot项目开机自启动:
1、导入数据库
导入mysql数据库。
2、上传打包好的jar包文件
上传jar包到到/usr/local/project/ 。
试运行java -jar springboot.jar
3、新增service文件
在 /etc/systemd/system/ 目录下面编辑一个以service为后缀的文件:
cd /etc/systemd/system
vi java.service
文件内容如下:
[Unit]
Description=java
After=syslog.target
[Service]
Type=simple
ExecStart=/usr/jdk1.8.0_281/bin/java -jar /usr/local/project/springboot.jar
[Install]
WantedBy=multi-user.target
其中:/usr/jdk1.8.0_281为jdk安装路径,/usr/local/project/springboot.jar 为打包好的jar包文件。
4、添加执行权限
chmod +x /etc/systemd/system/java.service
5、重新加载服务
systemctl daemon-reload
6、启动服务并加入开机自启动
systemctl start java
systemctl enable java
ps -ef | grep “java”| grep -v grep
systemctl status java.service -l
九、centos7下安装Tomcat8.5:
1、下载tomcat8.5
https://tomcat.apache.org/download-80.cgi
2、上传打包好的jar包文件并解压
上传到/usr/。
tar -zxvf apache-tomcat-8.5.63.tar.gz
3、tomcat增加启动参数
tomcat 根目录下需要增加一个pid文件tomcat.pid。
touch tomcat.pid
在tomcat/bin 目录下面,增加 setenv.sh 配置,catalina.sh启动的时候会调用,同时配置Java内存参数。
export CATALINA_HOME=/usr/apache-tomcat-8.5.63
export CATALINA_BASE=/usr/apache-tomcat-8.5.63
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
4、新增service文件
在 /etc/systemd/system/ 目录下面编辑一个以service为后缀的文件:
vi /etc/systemd/system/tomcat.service
文件内容如下:
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/jdk1.8.0_281"
PIDFile=/usr/apache-tomcat-8.5.63/tomcat.pid
ExecStart=/usr/apache-tomcat-8.5.63/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
5、添加执行权限
chmod +x /etc/systemd/system/tomcat.service
6、重新加载服务
systemctl daemon-reload
7、启动服务并加入开机自启动
直接启动
systemctl start tomcat
加入开机启动
systemctl enable tomcat
查看启动状态
systemctl status tomcat.service
停止服务
systemctl stop tomcat
查询tomcat 进程
ps -ef | grep “tomcat”| grep -v grep
如果多个tomcat,则拷贝到不同的目录,使用不同的端口。tomcat.service文件名不同即可。
例如:tomcat1.service tomcat2.service tomcat3.service
8、重启服务器
重启,试试能不能访问。
相关文章:

手把手教你将项目部署到服务器!
一、导入centos7虚拟机: 打开VMWare,点击“打开虚拟机”,选择centos7.ova之后,选择存储路径: 点击导入: 选择“不再显示此消息”,点击“重试”按钮: 点击“编辑虚拟机设置”&#x…...

OpenHarmony应用开发-ArkUI方舟开发框架简析
方舟开发框架(简称ArkUI)为OpenHarmony应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界…...

【Transformer系列(4)】Transformer模型结构超详细解读
前言 前一篇我们一起读了Transformer的论文《Attention Is All You Need》,不知道大家是否真的理解这个传说中的神(反正俺是没有~) 这两天我又看了一些视频讲解,感谢各位大佬的解读,让我通透了不少。 这篇文章就和…...

Idea启动运行报错:Error:java: 无效的源发行版: 13
最近在做Springboot项目时,常常出现上述错误,小编也不知道怎么回事,到网上找了这个方面的解决办法,但是却发现根本解决不了,最终通过小编多次尝试,终于发现,为什么会报这个错误。(应该是Java版本…...

【元分析研究方法】学习笔记1.形成问题
步骤1 形成问题 该步骤的作用该步骤中需要注意的问题该步骤中部分知识点我的收获 参考来源:库珀 (Cooper, H. M. )., 李超平, & 张昱城. (2020). 元分析研究方法: A step-by step approach. 中国人民大学出版社. 这章内容很简单:①变量的刻画&#x…...

2023年3月 青少年软件编程(Python) 等级考试试卷(五级)
一、单选题(共25题,共50分) 1.已知一个列表lst [2,3,4,5,6],lst.append(20),print(lst)的结果是?(C)(2分) A.[10,2,3,4,5,6,20] B.[20,2,10,3,4,5,6] C.[2,3,4,5,6,20] D.[2,3,4,5,…...

必须要知道的hive调优知识(上)
Hive数据倾斜以及解决方案 1、什么是数据倾斜 数据倾斜主要表现在,map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其…...

什么是Cache Aside Pattern与延迟双删
Cache Aside Pattern是一种常用的缓存设计模式,用于在应用程序中使用缓存提高系统性能的同时,避免缓存与数据库数据不一致的情况出现。延迟双删是Cache Aside Pattern的一种优化,可以进一步提高系统性能。 以下是关于Cache Aside Pattern和延…...

frp 流量特征
frp 流量特征 非常明显的明文流量特征...

Unity --- UGUI(Unity Graphical user interface)--- Canvas画布
1.UI --- User Interface --- 使用者与机器之间的交互界面 1.所谓的自适应系统指的是分辨率的适应: 比如在一个分辨率下做的UI放到另一个分辨率下显示时,如果没有自适应系统的话就会导致UI过大,过小,被辟成一半等等情况ÿ…...

c++积累6-内联函数
1、说明 内联函数是c为提高程序运行速度所做的一项改进。 2、常规函数运行 编译的可执行程序:由一组机器语言指令组成。 程序执行: 1、操作系统将这些指令载入到内存,每条指令都有一个特定的内存地址 2、计算机逐步执行这些指令 3、如果有…...

ESP32学习笔记13-MCPWM主要用于无刷电机驱动
16.MCPWM 16.1概述 ESP32 有两个 MCPWM 单元,可用于控制不同类型的电机。每个单元都有三对PWM输出 每个 A/B 对可由三个定时器定时器 0、1 和 2 中的任何一个计时。 同一定时器可用于为多对PWM输出提供时钟。 每个单元还能够收集输入,例如,检测电机过电流或过电压,以及获得…...

MyBatis-plu 和 JPA 对比
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 MyBatis-plu 和 JPA 前言一、说下相同点二、差异点一、从实现来说:CURD实现方式不一样二、分页上三、雪花id四、伪删除五、子类排除父类的字段 总结 前言 提示&…...

一文详解Python中多进程和进程池的使用方法
这篇文章将介绍Python中多进程和进程池的使用方法,并提供一些实用的案例供大家参考,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下 目录 Python是一种高级编程语言,它在众多编程语言中,拥有极高的人气和使用率。…...

前端部署发布项目后,如何通知用户刷新页面、清除缓存
以下只是一些思路,有更好的实现方式可以留言一起交流学习 方式一:纯前端 在每次发布前端时,使用webpack构建命令生成一个json文件,json中写个随机生成的一个字符串(比如时间戳),每次打包程序都…...

项目上线|慕尚集团携手盖雅工场,用数字化推动人效持续提升
过去十年,中国零售业以前所未有的速度被颠覆、被重塑,数字化则是其中重要的推动要素。 随着数字化转型的深入,零售企业的数字化不再局限于布局线上渠道,且更关乎其背后企业核心运营能力的全链路数字化改造。而贯穿于运营全链路的…...

Java重载 与封装、继承
方法重载 在同一个类中,出现了方法名相同,参数不同的方法时 ,我们叫方法重载 作用:根据不同参数,选择不同方法 实例 public static void main(String[] args){public int add(int a,int b){return ab;}public double…...

sed正则表达式替换字符方法
在 Linux 命令行中,可以使用 sed 命令来替换指定文件中的指定字符。具体方法如下: sed -i s/<old_string>/<new_string>/g <filename>其中,<old_string> 表示要被替换的字符串,<new_string> 表示替…...

不讲废话普通人了解 ChatGPT——基础篇第一课
wx供重浩:创享日记 获取更多内容 文章目录 前言什么是 ChatGPT它是如何工作的ChatGPT 和其它机器人有什么不同 前言 不知道大家在第一次会使用 ChatGPT 并尝试和他对话时有没有感到震惊。当ChatGPT首次推出时,我立即被它的功能所吸引。 曾经在遇到繁杂…...

MATLAB计算气象干旱指标:SAPEI
MATLAB计算干旱指标:SAPEI 标准化前降水蒸散发指数(Standardized Antecedent Precipitation Evapotranspiration Index, SAPEI)1 指数简介1.1 指数计算原理步骤1:计算潜在蒸散发(potential evapotranspiration, PET)步骤2:计算降水和PET的日差1.2 数据资料1.3 拟合分布的…...

GPT对SaaS领域有什么影响?
GPT火了,Chat GPT真的火了。 突然之间,所有人都在讨论AI,最初的访客是程序员、工程师、AI从业者,从早高峰写字楼电梯里讨论声,到村里大爷们的饭后谈资,路过的狗子都要和它讨论两句GPT的程度。 革命的前夜…...

backward()和zero_grad()在PyTorch中代表什么意思
文章目录 问:backward()和zero_grad()是什么意思?backward()zero_grad() 问:求导和梯度什么关系问:backward不是求导吗,和梯度有什么关系(哈哈哈哈)问:你可以举一个简单的例子吗问&a…...

C++多线程编程(一) thread类初窥
多线程编程使我们的程序能够同时执行多项任务。 在C11以前,C没有标准的多线程库,只能使用C语言中的pthread,在C11之后,C标准库中增加了thread类用于多线程编程。thread类其实是对pthread的封装,不过更加好用ÿ…...

Qt QVector 详解:从底层原理到高级用法
目录标题 引言:QVector的重要性与简介QVector的常用接口QVector和std::Vector迭代器:遍历QVector 中的元素(Iterators: Traversing Elements in QVector)常规索引遍历基于范围的for循环(C11及以上)使用STL样…...

快速弄懂RPC
快速弄懂RPC 常见的远程通信方式远程调用RPC协议RPC的运用场景和优势 常见的远程通信方式 基于REST架构的HTTP协议以及基于RPC协议的RPC框架。 远程调用 是指跨进程的功能调用。 跨进程可以理解为一个计算机节点的多个进程或者多个计算机节点的多个进程。 RPC协议 远程过…...

ONVIF协议介绍
目录标题 一、 ONVIF协议简介(Introduction to ONVIF Protocol)1.1 ONVIF的发展历程(The Evolution of ONVIF)1.2 ONVIF的主要作用与优势(The Main Functions and Advantages of ONVIF) 二、 ONVIF协议的底…...

AI大模型内卷加剧,商汤凭什么卷进来
2023年,国内大模型何其多。 目前,已宣布推出或即将推出大模型的国内企业多达20余家,基本上能想到的相关企业都已入局。其中,既有资金雄厚的BAT、华为、字节等大厂,也有王慧文、王小川、周伯文等互联网大佬领衔的初创企…...

企业网络安全漏洞分析及其解决_kaic
摘要 为了防范网络安全事故的发生,互联网的每个计算机用户、特别是企业网络用户,必须采取足够的安全防护措施,甚至可以说在利益均衡的情况下不惜一切代价。事实上,许多互联网用户、网管及企业老总都知道网络安全的要性,却不知道网…...

Docker网络模式与cgroups资源控制
目录 1.docker网络模式原理 2.端口映射 3.Docker网络模式(41种) 1.查看docker网络列表 2.网络模式详解 4.Docker cgroups资源控制 1.CPU资源控制 2.对内存使用的限制 3.对磁盘IO的配置控制(blkio)的限制 4.清除docker占用…...

Linux/C++:基于TCP协议实现网络版本计算器(自定义应用层协议)
目录 Sock.hpp TcpServer.hpp Protocol.hpp CalServer.cc CalClient.cc 分析 因为,TCP面向字节流,所以TCP有粘包问题,故我们需要应用层协议来区分每一个数据包。防止读取到半个,一个半数据包的情况。 Sock.hpp #pragma on…...