Marco's Java【SpringBoot番外篇 之 如何让SpringBoot项目在Linux上跑起来!】 - Go语言中文社区

Marco's Java【SpringBoot番外篇 之 如何让SpringBoot项目在Linux上跑起来!】


前言

本节SpringBoot番外篇将介绍,如何让SpringBoot项目在Linux上跑起来!为啥要介绍这个呢?
因为大多数企业级的项目都会选择使用Linux服务器而不是Window,并且市面的上分布式项目都是丢在Linux上跑的,Linux稳定、高效的特性以及对网络的良好支持性,为分布式项目的运行提供了非常良好的环境(PS:说到底还是因为免费… 哈哈 ),可能有的初学编程的朋友还没有接触过Linux,所以大家可以稍微了解下Linux的发展史,之前有了解过的朋友可以直接跳过哦~

操作系统的发展史

Unix

1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑
在这里插入图片描述
为了解决数量不够用的问题
1965年左后由贝尔实验室、麻省理工学院 以及 通用电气共同发起了Multics项目,想让大型主机支持300台终端
1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
1969年从这个项目中退出的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行“星际旅行”游行,在8月份左右趁着其妻子探亲的时间,用了1个月的时间 编写出了 Unix操作系统的原型
1970年,美国贝尔实验室的 Ken Thompson,以 BCPL语言 为基础,设计出很简单且很接近硬件的 B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。
因为B语言的跨平台性较差,为了能够在其他的电脑上也能够运行这个非常棒的Unix操作系统,Dennis RitchieKen Thompson 从B语言的基础上准备研究一个更好的语言
在这里插入图片描述
肯·汤普逊(左)和丹尼斯·里奇(右)
1972年,美国贝尔实验室的 Dennis Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统

Minix

因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。

Linux

因为Minix只是教学使用,因此功能并不强,因此Torvalds(李纳斯,就下面的帅大叔) 利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范); 一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件。(PS:所以说全世界的大佬儿都是一样的,一言不合就自己写一套语言出来… )
在这里插入图片描述

操作系统的发展

在这里插入图片描述

好啦,关于Linux发展史就了解到这里,咱们进入正题。如何让SpringBoot项目在Linux上跑起来!

安装JDK

要想让我们的程序跑起来,必须先得有JAVA运行环境吧~ 所以咱们第一步要做的就是安装JDK,下载请戳 Linux JDK Download ,记得下载后缀为tar.gz的包哦!

第一步:下载linux版本JDK
在这里插入图片描述
在这里插入图片描述
第二步:使用XFTP传到Linux并解压
接着我们在Linux下的下创建/download目录,并借助XFTP将文件传到此目录
然后使用以下指令将文件解压到usr/local/java

tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java/

第三步:配置环境变量
通过vi /etc/profile指令在最后添加以下配置,这里的JAVA_HOME和Window是一样的,也就是jdk中存放bin(可执行文件)子目录的根路径,下面的写法就是固定的了。

JAVA_HOME=/usr/local/java/jdk1.8.0_181
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

注意配置完成之后要使用source /etc/profile刷新/etc/profile配置文件

第五步:测试
输入java -version,测试,如果jdk安装配置成功之后,会得到如下结果
在这里插入图片描述

安装Tomcat

因为咱们搭建的是Web项目,照理来说是需要安装Tomcat的,但是SpringBoot项目打包之后都是jar包,本身内嵌tomcat服务器,因此不需要安装,省了一桩大事儿,不过这里我们还是提一提如何在Linux在安装Tomcat并运行Web项目吧~ 如果想直接了解SpringBoot如何在Linux上运行的朋友可以直接略过哦~

第一步:下载linux版本Tomcat
下载地址请戳
Linux Tomcat Download
在这里插入图片描述
在这里插入图片描述
第二步:解压apache-tomcat-8.5.38.tar.gz文件
还是老样子,将下载好的文件丢到/download目录,接着解压文件

tar -zxvf apache-tomcat-8.5.38.tar.gz -C /usr/local/tomcat/

第三步:将项目打成war 包之后放入tomcat的webapps目录
解压完成之后,我这里随便找了个Spring的Web项目打成war 包,丢进webapps项目根目录中
在这里插入图片描述

第四步:运行tomcat
运行如下指令进入到tomcat文件的bin目录
在这里插入图片描述
使用ll指令,我们可以看到tomcat中有哪些可执行的linux指令,灰色和红色的指令表示我们还没有执行的权限,重点放在绿色的指令上,结尾为.sh的指令为Linux指令(.bat是Window的指令),.sh本质上就是shell写的运行Linux的脚本。显而易见,启动和停止的指令分别为startup.shshutdown.sh
在这里插入图片描述
接着我们运行./startup.sh./表示在运行当前目录下的指令),会得到如下结果。
在这里插入图片描述
不要慌!Tomcat stated并不代表项目成功启动了,之前咱们在控制台就能直观的看到项目的运行情况,那么离开了控制台,日志就派上用场啦!
在当前路径下输入cat ../logs/catalina.out即可查看日志
在这里插入图片描述
如果结尾出现org.apache.catalina.startup.Catalina.start Server startup in 25406 ms,才算是运行成功!还是挺简单的对吧~
在这里插入图片描述
注意: 这里我再提一嘴,可能有的朋友之前得Spring项目是使用Maven得Tomcat插件来运行的
在这里插入图片描述
如果你打成war包的名称和项目名称一致的话,请忽略,如果不一致的话,记得访问项目的时候,项目名称必须要是你丢进tomcat的webapps的项目名称,比如说我的war包解压之后的文件夹名为carrent_plus
在这里插入图片描述
那么我访问项目的路径应当是http://192.168.144.129:8080/carrent_plus而不应该是http://192.168.144.129:8080/marco

安装Mysql

重头戏来啦!Tomcat安装之后项目能够正常跑起来,但是数据库没有在Linux上安装看,等于一具没有灵魂的躯壳。相对于上面JDK和Tomcat,Mysql的安装会稍微繁琐些,所以一定要留意每个步骤哦

第一步:下载linux版本Tomcat
下载地址请戳
Mysql Tomcat Download
在这里插入图片描述
在这里插入图片描述
第二步:解压到/usr/local/mysql【必须是这个目录】

#解压
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
#重命名
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql
#复制解压后的mysql目录
cp -r mysql /usr/local

第三步:创建数据仓库目录
解压完成之后,进入安装mysql软件目录:执行命令 cd /usr/local/mysql/
创建数据仓库目录

--/data/mysql 数据仓库目录
# mkdir /data/mysql         
#ls /data/

在这里插入图片描述
第四步:新建mysql用户、组及目录

---新建一个msyql组
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell

以下是我在网上收集的useradd相关指令及注释,大家可以参考参考(原文链接:https://www.cnblogs.com/irisrain/p/4324593.html )

指令 注释
-c: 加上备注文字,备注文字保存在passwd的备注栏中。
-d: 指定用户登入时的主目录,替换系统默认值/home/<用户名>
-D: 变更预设值。
-e: 指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
-f: 指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-g: 指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
-G: 指定用户所属的附加群组。
-m: 自动建立用户的登入目录。
-M: 不要自动建立用户的登入目录。
-n: 取消建立以用户名称为名的群组。
-r: 建立系统账号。
-s: 指定用户登入后所使用的shell。默认值为/bin/bash。
-u: 指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。

第五步:改变目录所有者

#切换到mysql的目录
cd /usr/local/mysql 
#查看当前路径
pwd -- 显示为/usr/local/mysql 
chown -R mysql ./
chgrp -R mysql ./
#数据库目录
chown -R mysql /data/mysql

运行完成之后,咱们可以看到mysql包括它的子目录的所有者为mysql组的成员,且只有用户名为mysql的成员有查阅、修改和执行的权限。mysql组的其他成员只有读和执行的权限。
在这里插入图片描述
第六步:配置参数 
basedir是存放mysql的文件夹,datadir指的是存放mysql数据的文件夹

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

在这里插入图片描述
此处需要注意记录生成的临时Mysql的密码,如上文结尾处的:YLi>7ecpe;YP

第七步:安装Mysql

bin/mysql_ssl_rsa_setup --datadir=/data/mysql  

在这里插入图片描述

第八步:修改系统配置文件 
注意,如果在/usr/local/mysql/support-files中没有找到my-default.cnf的话就忽略cp my-default.cnf /etc/my.cnf,直接去查看/etc/中有没有my.cnf文件,如果有,直接把权限改了就Ok啦 ,修改指令为chmod 777 my.cnf

# cd /usr/local/mysql/support-files
# cp my-default.cnf /etc/my.cnf    
# cp mysql.server /etc/init.d/mysql

第九步:修改etc/init.d/mysql

# vim /etc/init.d/mysql

进入etc/init.d/mysql中修改如下内容
在这里插入图片描述
第十步:启动Mysql

# /etc/init.d/mysql start
如果无法启动执行下面命令
# chmod 777 /etc/my.cnf

启动完成之后,使用# mysql -u root -p 并输入之前咱们记住的零时密码YLi>7ecpe;YP
如果出现:-bash: mysql: command not found异常,就执行:

# ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行

第十一步:修改Mysql密码
因为此前的密码是自动生成的,因此,需要我们手动在Mysql中修改密码

mysql>set password=password('123456');

接着设置root账户的host地址(修改了才可以远程连接)

mysql>grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql>flush privileges;

完成以上操作之后,咱们来查看下mysql自带的表

mysql> use mysql;
mysql> select host,user from user;

能够查询的出来证明之前的操作都是没有问题的!
在这里插入图片描述
第十二步:执行sql脚本
sql脚本我已经准备好,放在download文件夹啦,大家可以自己准备一份

创建数据库
CREATE DATABASE carrent DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
使用数据库
use carrent;
执行sql脚本
source /root/download/carrent.sql;

成功之后,大家可以随意执行一条sql语句测试下
在这里插入图片描述
因为之前的Spring项目已经解压过了,所以直接访问http://192.168.144.129:8080/carrent_plus,登录就可以啦!

第十三步:运行SpringBoot项目
以上是Spring结合SpringMVC的Web项目的运行操作,那么SpringBoot项目怎么玩呢?
非常简单!使用Maven install指令将项目打成jar包之后,丢进linux的/download目录,并执行如下指令

java -jar /download/erp.jar(项目的jar包路径)

运行完成之后结果如下
在这里插入图片描述
接着输入http://192.168.144.129:8080/,就可以在浏览器上访问Linux上的Web项目啦!
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44698119/article/details/99758653
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-13 14:59:15
  • 阅读 ( 1586 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢