Linux项目环境搭建和项目部署(Java项目/Centos7)

目录

一、系统准备:VMware安装Centos 7

二、JAVA环境安装

三、数据库环境安装和数据导入

1、数据库环境安装

2、数据导入

数据导入步骤

解决Linux(Centos7)显示中文乱码

四、Java程序打包上传并部署

附录:

杀掉进程


一、系统准备:VMware安装Centos 7

1、准备好Centos7安装镜像,如果没有,请先去官网下载,免费的。

2、VMware安装Centos7:点击:文件->新建虚拟机,会弹出安装向导,选择自定义安装(自定义分配处理器核数和内存大小),基本傻瓜式安装,直接点击下一步就可以了,以下列出关键安装步骤的图示:

(1)选择镜像

(2)处理器和虚拟内存配置,我这边是做演示项目用的,给虚拟机分配的处理器为2核,内存为2G,硬盘大小给定为50GB。

(3)网络类型选择——使用桥接模式

(4)Centos7安装路径和网络开启,在Centos安装中,这两个非常重要,尤其是网络开启。

磁盘选择

网络开启

(5)登录虚拟机后,查看IP地址:ip addr

系统安装到此结束,没有给出图示的,基本上都是不太重要的部分,可以直接下一步或者看提示就能知道如何操作。

更详细的教程:VMware安装Centos7超详细过程(图文)_小七的博客-CSDN博客_vmware安装centos7

二、JAVA环境安装

关于Java环境安装的具体步骤,请参考这篇文章:

Linux系统(Centos7)——安装tomcat_swadian2008的博客-CSDN博客

三、数据库环境安装和数据导入

1、数据库环境安装

(1)使用yum命令安装mysql,可以安装mysql所有的相关依赖,解决依赖问题

yum install mysql*

(2)在Centos7中,使用mysql还需要安装mariadb,使用命令如下:

yum install mariadb-server

(3)安装完mariadb后,启动该服务

systemctl start mariadb.service

(4)查看mysql是否已经启动

ps -ef | grep mysql

如图,可以看到mysql相应进程都已经启动成功

同样,mysql默认启动的端口号为:3306,我们也可以通过命令查看此端口是否已经启用来验证

yum install net-tools // 如果netstat不存在,先安装此工具
netstat -anp | grep 3306 // 查看3306端口使用情况

使用结果如图

(5)修改mysql用户名和密码

mysqladmin -u root password root  // 用户名为root ,密码为root

(6)连接mysql

mysql -uroot -proot  // root为用户名和密码

登录结果如下:

通过show databases;命令,我们可以看到原始的数据库信息,至此,mysql已经安装完毕且能正常使用

yum安装的mysql 目录结构

  • /var/lib/mysql                          mysql数据文件存放路径,可自定义 
  • /etc/my.cnf                              mysql配置文件路径
  • /usr/lib64/mysql                      mysql库文件路径
  • /usr/bin/mysql*                       mysql二进制可执行文件路径
  • /etc/rc.d/init.d/mysqld             mysql服务管理脚本地址
  • /var/log/mysqld.log                 mysql日志文件路径

2、数据导入

数据导入步骤

(1)备份数据库数据和表结构,文件格式为*.sql

(2)使用put上传*.sql文件

put D:\mysqldata.sql  // 上传数据库备份文件

上传图示:

(3)登录mysql,并马上执行mysqldata.sql文件

mysql -uroot -proot < //home/root123/mysqldata.sql

(4)执行完后,登录mysql查看数据库

mysql -uroot -proot  // 登录mysql
show databases;   // 查看数据库

展示如下:

可以继续使用如下命令,查看表结构和数据是否和本地上传的数据保持一致

use seckill;   // 使用秒杀数据库
show tables;   // 展示数据库表
select * from item;   // 查看item表数据

解决Linux(Centos7)显示中文乱码

乱码图示:

(1)查看系统当前语言

echo $LANG  // 查看系统当前支持语言命令

如图,系统当前语言为:en_US.UTF-8,此语言并不支持中文

使用locale命令查看系统支持的语言种类,其中并没有中文,所以,我们需要安装linux对中文支持

(2)使用yum命令安装中文支持

yum groupinstall chinese-support -y  // 安装中文支持

但是仅仅有语言包还不行,我们得设置相应的字符集,接下来更改Linux默认语言为中文

(3)修改Linux配置文件,将应用语言设置为中文

vi /etc/profile  // 编辑配置文件
在配置文件里添加如下行:
export LANG="zh_CN.UTF-8"

source /etc/profile   // 重新加载配置文件

此时可以使用echo $LANG 和 locale 命令来查看当前系统使用的语言及支持的语言

(4)修改终端工具的编码格式为UTF-8

修改完Linux的配置后,在终端还显示为乱码,这个时候我们需要修改终端的编码格式,如图:

更改后,查看数据,中文显示正常

四、Java程序打包上传并部署

1、确保项目中有支持maven打包的插件,pom.xml文件中有如下配置

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

2、在IDEA中使用Maven的package命令打包项目

打包命令执行后,在项目的文件夹下会新增一个target的文件夹,在target文件夹下,可以看到已经打好的jar包

3、使用put把jar包上传到Linux服务器上并授权

上传完成后,把jar包移动到指定的目录中,对jar包文件进行授权

chmod -R 777 *  // 对文件进行授权

操作图示:

4、关闭Linux防火墙或者开放对应的端口号

关闭防火墙命令:

firewall-cmd --state   // 查看防火墙状态
systemctl stop firewalld.service   // 停止防火墙
systemctl disable firewalld.service  // 禁止防火墙开机启动

5、编写deploy启动脚本

场景:生产环境下和测试环境下的配置在一般会不一样,为了尽量减少代码的修改,我们可以在不同环境的服务器上分别配置对应的外挂配置文件。

springboot项目在启动时会优先读取springboot项目中的配置文件,然后再读取外挂中的配置文件。外挂配置文件中的属性会替换掉springboot项目中相同的属性的配置,最终以外挂配置文件为主

(1)在jar包的同名目录下创建外挂配置文件application.properties,修改项目的启动的端口为8091,如图

vi application.properties   // 创建并编辑文件

文件中重新定义了项目启动的端口为8091

(2)启动Java项目+spring相关命令

java -jar com.demo.seckill-1.0-SNAPSHOT.jar \
--spring.config.addtion-location=/var/www/seckill/application.properties

(3)编写deploy.sh启动脚本

在日常的工作当中,如果只使用java -jar命令启动项目,那么系统在进行其他操作,就必须得暂停掉当前项目的运行,我们可以nohup命令来解决这一问题。为了方便,我把启动命令编写成了启动脚本。

vi deploy.sh  // 创建并编写*.sh脚本

在脚本中输入以下内容,其中还额外添加了虚拟机配置参数

nohup java \
-Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m \
-jar com.demo.seckill-1.0-SNAPSHOT.jar \
--spring.config.addtion-location=/var/www/seckill/application.properties

添加成功后,需要对文件进行执行操作的授权,授权成功后,执行此脚本

chmod -R 777 *   // 对当前文件夹下的所有文件授予所有权限
./deploy.sh&   // 使用.命令执行脚本文件

注:在命令的末尾加上一个 & 号,将这个任务放到后台去执行

执行脚本后,会发现项目启动的日志并没有输出到终端显示,而此时对应的文件夹下却新增了一个名为nohup.out的输出文件

打开配置文件,我们可以看到,所有的项目启动日志都被写进了nohup.out的文件中

此时,项目在后台启动,系统执行其他操作时,并不会终止项目的运行。

附录:

杀掉进程

1、程序启动时报错,端口被占用

Caused by: java.net.BindException: 地址已在使用

2、执行netstat -alnp | grep 8091 查看此端口号的相关进程号

ps -ef | grep java  查看java进程

3、执行kill -9 11713 强制删掉此进程

kill -9 和 kill -s的区别:

kill 发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。
kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出。TERM(或数字9)表示“无条件终止”;因此 kill - 9 表示强制杀死该进程;与SIGTERM相比,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理

  • 6
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

swadian2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值