手把手教你在Linux系统进行项目部署
手把手教你在Linux系统进行项目部署
百度网盘:https://pan.baidu.com/s/11wMIXT68GX7banf3Gaflrw (提取码:lzt1)
GitHub:https://github.com/Newbie-Rookie/Project-deployment
已经将项目部署需要用到的工具放到网盘中和GitHub上
在进行项目部署前,你先需要拥有一台服务器、XShell软件、XFtp软件
(1) 服务器
上阿里云、腾讯云租一台即可,可以看看官网的最新活动的限时秒杀(腾讯云),每天固定时间有优惠活动。
我目前用的是腾讯云的云服务器,学生有优惠https://cloud.tencent.com/act/campus(需要学生认证)
用购买服务器的账号登录服务器控制台(腾讯云控制台),找到购买的云服务器,进入实例
我们需要记住服务器初始登录名为root,密码我们进行重置密码,更改为我们容易记住的密码,用于登录XShell和XFtp
我们还要记住公网IP
(2) XShell和XFtp
XShell是命令操作服务器上资源的软件,XFtp是可视化操作服务器上资源的软件。
官网下载XShell 7和XFtp 7即可,但目前不知道为什么进不去官网,我把软件放网盘和github上,需要的自取。
① XShell连接云服务器:
点击该连接进行连接,需要再次输入登录名root和你所重置的密码即可连接成功。
② XFtp连接云服务器:
填写云服务器公网IP、登录名和密码,进行连接即可
以上将服务器、XShell和XFtp准备好后,我们就需要搭建项目运行环境,分四个步骤。
1、Linux安装jdk8(或其他版本)
1.1 下载jdk8.0
Oracle官网:https://www.oracle.com/java/technologies/downloads/#java8
需要Oracle账户(百度搜索Oracle账户,嫖一个下载就ok)
下载:jdk-8u321-linux-x64.tar.gz(已为你们准备了jdk-8u311-linux-x64.tar.gz在网盘和GitHub中)
1.2 源代码解压
XFtp进入/usr/local,将jdk-8u311-linux-x64.tar.gz进去
以下在XShell中进行:
进入/usr/local,即jdk源代码压缩包位置:
cd /usr/local
解压jdk源代码压缩包:
tar -zxvf jdk-8u311-linux-x64.tar.gz
删除jdk源代码压缩包:
rm -f jdk-8u311-linux-x64.tar.gz
解压成功:
1.3 配置jdk环境变量
/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西
所以,我们要将jdk配置到/etc/profile,才可以在任何一个目录访问jdk
vim /etc/profile
按i进入编辑,在profile文件尾部添加如下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_311 #jdk安装目录export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}
添加后如下:
然后按Esc退出编辑,按:wq退出配置文件即可
通过命令source /etc/profile让profile文件立即生效:
source /etc/profile
1.4 测试jdk是否安装成功
javac
java -version
2、Linux安装Tomcat
2.1 下载安装包
我部署的项目中使用的是apache-tomcat-9.0.56,所以网盘和GitHub为你们准备了apache-tomcat-9.0.56.tar.gz
项目中使用的9及9以下版本都可以用,如果使用的是10以上版本,需要自己到官网下载,因为10以上版本的包名已经和9及9以下版本的包名不同,9及9以下版本
2.2 上传文件/解压
XFtp进入/usr/local,将apache-tomcat-9.0.56.tar.gz进去
解压:
tar -zxvf apache-tomcat-9.0.56.tar.gz
重命名:
mv apache-tomcat-9.0.56 tomcat
删除压缩包:
rm -f apache-tomcat-9.0.56.tar.gz
解压成功:
2.3 启动tomcat
进入目录tomcat的bin目录:
cd /usr/local/tomcat/bin/
启动:
./startup.sh
查看tomcat启动效果:
在浏览器输入公网IP + 8080 (8080默认端口)
这就表示成功在Linux上安装了Tomcat。
3、Linux安装MySQL
我的项目使用的是MySQL8.0,所以我安装MySQL8.0
3.1 安装前清理工作(卸载mysql)
3.1.1 清理原有的mysql数据库
使用以下命令查找出安装的mysql软件包和依赖包:
rpm -qa | grep mysql
可能显示结果如下:
mysql80-community-release-el7-1.noarch
mysql-community-server-8.0.11-1.el7.x86_64
mysql-community-common-8.0.11-1.el7.x86_64
mysql-community-libs-8.0.11-1.el7.x86_64
mysql-community-client-8.0.11-1.el7.x86_64
使用以下命令依次删除上面的程序:
yum remove 名字
删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件:
find / -name mysql
可能显示结果如下:
/etc/selinux/targeted/active/modules/100/mysql
/usr/share/mysql
/usr/lib64/mysql
使用以下命令依次删除上面的程序:
rm -rf 名字
3.1.2 删除MariaDB的文件
由于MySQL在CentOS 7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.
使用rpm命令查找出要删除的mariadb文件:
rpm -qa | grep mariadb可能的显示结果如下:
mariadb-libs-5.5.56-2.el7.x86_64 rpm -e mariadb-libs-5.5.56-2.el7.x86_64 #删除上面的程序
可能出现错误提示如下:
依赖检测失败:
libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
使用强制删除:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
至此就将原来有的mysql 和mariadb数据库删除了。
3.2 安装MySQL
目前我用的是腾讯云CentOS 7.6 64位,将安装MySQL8.0
由于从CentOS 7系统开始,MariaDB成为yum源中默认1的数据库安装包,如果我们的Linux操作系统为CentOS 7及以上版本,使用yum命令安装MySQL包时可能将无法启动MySQL,且自己从官网下载Linux系统的MySQL安装包到Linux系统中也一样,也会出现无法启动MySQL服务的问题,我尝试了许多方法,暂时没有找到解决方法。
直到我发现了一篇博文的方法比较靠谱,而且尝试可行:CentOS 7.6 安装MySQL8.0
即手动下载mysql的Yum Repository
3.2.1 下载Yum Repository
到MySQL官网下载mysql的Yum Repository:MySQL Yum Repository
根据不同版本的CentOS系统进行下载,点击Download,我的是Linux 7
使用XShell,连接服务器,用wget下载mysql的rpm包:
wget https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm
如上图,则下载成功。
3.2.3 安装MySQL(官网最新)
yum -y install mysql-community-server
最后结果如上图,则安装成功。
3.2.4 启动mysql服务并查看mysql状态
启动mysql服务:
systemctl start mysqld.service
查看mysql状态:
systemctl status mysqld.service
active表示mysql服务已启动。
3.2.5 获取mysql的root用户初始密码并修改
获取root用户初始密码:
grep "password" /var/log/mysqld.log
初始密码先记住,最好复制,第一次登陆时要用,如果忘记,可以百度一下怎么无密码登录(在这里我就不讲了)
因为安装了Yum Repostiory,以后每次yum操作都自动更新,需要把这个卸载掉:
yum -y remove mysql80-community-release-el7-5.noarch
关闭和重启mysql:
systemctl stop mysqld.service #关闭mysql
service mysqld restart #重启mysql
登录root用户并修改密码:
mysql -uroot -p
回车后将刚刚生成的初始密码复制进去,再回车即可
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
如果出现以下错误:是密码安全性未达到要求,你可以先设置比较复杂,你容易记的密码先,因为第一次登陆必须先修改密码才能进行其他操作
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
登陆之后,可查看MySQL完整的初始密码规则:
SHOW VARIABLES LIKE 'validate_password%';
可以临时修改validate_password.length和validate_password.policy的值,再设置较为简单的密码:
set global validate_password_length=4;
set global validate_password_policy=0;
这样就可以通过上面的修改密码语句将密码修改为较为简单的密码。
3.2.6 设置远程连接(Navicat)
use mysql; # 使用mysql数据库
select user,host from user; # 查看用户及用户登录权限
上面表示的的四个用户均只能本地登录,不允许远程登录,所以我们需要新增用户,并赋予远程连接权限
(1)新增远程连接用户:
# CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
CREATE USER 'lzt'@'%' IDENTIFIED BY 'lzt';
(2)设置远程连接权限
grant all privileges on *.* to 'lzt'@'%';
(3)刷新权限
flush privileges;
很多用户在使用Navicat Premium 12(我就是用这个版本,不用破解,即下即用)连接MySQL数据库时会出现Authentication plugin ‘caching_sha2_password’ cannot be loaded的错误。
出现这个原因是MySQL8.0之前的版本中加密规则是mysql_native_password,而MySQL8.0之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级Navicat驱动(太麻烦),一种是把mysql用户登录密码加密规则还原成mysql_native_password
# 修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;# 更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
ALTER USER 'lzt'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
4、项目部署
上面我们已将项目部署所需要的东西都准备好,现在我们只需要将我们的项目进行打包,由于我的项目使用了Maven,我将项目打包成war文件,然后将文件使用XFtp软件放到Linux中/usr/local/tomcat/webapps中,即可通过 公网IP/端口(默认8080)/资源名 进行访问:
到此项目部署完成(不同类型的项目进行部署会有差别,此项目部署较适用于JavaWeb项目、Maven项目)
手把手教你在Linux系统进行项目部署相关推荐
- 在linux下怎么安装mysql,手把手教你在Linux系统下安装MySQL
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1. 下载并安装MySQL官方的 Yum R ...
- 手把手教你破解Linux系统root密码——无需任何工具,有手就行
[写作说明]:笔者是Linux学习和爱好者,学习或者工作中总是看到有人忘记root密码不知所措,其实不用慌张,Linux下破解root密码非常简单,今天我就手把手教会大家在Linux下破解root密码 ...
- 手把手教你在Linux系统下进行Python pip换源操作
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 世间无限丹青手,一片伤心画不成. ...
- 查看电脑python虚拟环境-手把手教你在Linux系统下使用Python虚拟环境
点击上方" Python爬虫与数据挖掘 ",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夕阳无限好,只是近黄昏. /1 ...
- linux系统如何打开python_手把手教你在Linux系统下使用Python虚拟环境
点击上方" Python爬虫与数据挖掘 ",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夕阳无限好,只是近黄昏. /1 ...
- 删除虚拟环境_手把手教你在Linux系统下使用Python虚拟环境
Hello小伙伴们,你们好,又是日常get新技能的一天,今天,咱们来整一下如何玩转Linux下Python虚拟环境,0基础入门,趁着热乎,快上车啦~. 之前小编有写过Windows下的虚拟环境创建和基 ...
- java调用打印机打印excel linux_手把手教你嵌入式Linux系统驱动hp1020打印机
一.开发环境 硬件环境:am3354 打印机型号:hp1020plus 虚假机系统:Ubuntu12.04 交叉编译工具版本:arm-linux-gcc version 4.5.1 二.详细步骤 1. ...
- linux系统上项目部署
步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的) 查看虚拟机版本:sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 查看是否已 ...
- android开发中,手把手教你root Android系统
手把手教你root Android系统 因为从事的是智能家居相关行业,用的系统也是android系统,在某些场景下可能需要拿到系统的root权限.下面就手把手教大家去拿到app的root权限和adb的 ...
- 手把手教你搭建Linux开发环境(VMware+Ubuntu)(二)——安装VMwareTools并设置共享文件夹
刚刚装好了Ubuntu,安装VMware Tools会让我们有更好的体验,那么为什么要安装VMware Tools?该如何安装呢?本篇博客将手把手教你安装VMware Tools,并设置共享文件夹. ...
最新文章
- Simple NHibernate Architecture[from]
- 从头理解self-attention机制
- 生成唯一字符串算法_面试官问:在分布式场景,生成唯一ID,你有几种方案?...
- Sklearn(v3)——朴素贝叶斯(1)
- 计算机配置文章,看电脑配置的“两个”小妙招!
- linux剪贴板复制文件原理,linux剪贴板原理
- SQLite基本语法
- nginx-1.13.x源码安装
- 前端学习(1926)vue之电商管理系统电商系统之美化一层循环的UI结构for循环渲染第二层结构
- M1 macbook值得购买吗?关于M1芯片macbook的三点购买建议
- 代码管理_阿里巴巴自研代码管理平台技术解密
- asp.net ReportViewer 设置 rdlc textbox的值
- 一维转二维_Excel – 一维表和二维表相互转换,只要一个“=”搞定
- HTTPS反向代理嗅探
- Android 实现全屏、无标题栏
- Mac 下 Chrome 谷歌浏览器 快捷键
- vue 读取地址栏参数
- 移动硬盘 RAW修复
- nstrFetchProhibited,stack overflow,Task watchdog got triggered解决办法
- 火焰纹章核心功能的实现
热门文章
- python合并相同内容单元格_快速合并单元格相同项的内容
- OpenGL第二讲——绘制简单的几何图形
- gitee创建仓库,并将代码上传到gitee上
- Python + Selenium自动化测试
- com词根词缀_英语词根词缀,cor和con分别代表什么意思
- 深度学习之注意力机制(Attention Mechanism)和Seq2Seq
- 以太坊实战之《如何正确处理nonce》
- Linux性能优化(一)——stress压力测试工具
- 冻结表格模板html,Excel冻结单元格(锁定单元格)用选项和快捷键,含冻结一个、多个和有公式的单元格及冻结表格格式不能输入...
- 网络状态检测的利器 - ss命令