javaweb项目部署到linux服务器_rpm文件如何上传并安装到服务器-程序员宅基地

技术标签: java  javaweb项目部署到linux服务器  linux  mysql  vim  数据库  

javaweb项目部署到linux服务器

包括jdk安装配置、tomcat安装配置、部署方法以及部署过程中遇到的一些问题和解决方法)。

目前对于很多学过javaweb的同学来说,大多只是会在windows环境下利用像ecplise、my ecplise、vscode这样的软件来完成网页项目的设计,但是目前主流的服务器一般都是linux服务器,所以当我们完成一个网页项目的设计和实现的后,放手停留在windows系统上,这样的做法就像是一百步走了99步,最后一步放弃了,而更好的做法就是学会将自己做的项目发布到服务器上去。目前主流的服务器都是linux或者unix系统的环境。因为这两种操作系统安全性比较高还有就是效率这方面也比较高。所以这次我们主要给大家分享一下javaweb项目部署到linux服务器的方法。

工具准备

我们在部署项目之前需要安装一些linux上的工具来配置好他的环境,这样我们的项目在部署到服务器上才能正常使用。

  1. jdk :这里我才用的jdk版本是jdk-8u161-linux-x64.tar
  2. tomcat:去官网下载tomcat9.0版本,tomcat10.0版本目前是测试版所以9.0还是比较稳定的,这里我使用的是apache-tomcat-9.0.41.tar.gz
  3. 数据库MySQL :大家也可以去官网下载,这里我使用的是mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar 这个是安装包,还有一种版本是.tar.zip,我们这次不讲这种版本的mysql怎么安装,在我的其他帖子有;
  4. linux镜像:我们这次使用的镜像是centos7这个版本;
  5. 虚拟机:大家可以去官网下载,我用的是VMware Workstation Pro,这个版本比较老了,不过用起来还是挺顺手的;
  6. 文件传输、服务器连接等工具xshellxftp等工具,具体使用的方法可以看我其他的帖子;
  7. 工具分享:包里有jdk、tomcat、MySQL、文件传输连接等工具。https://pan.baidu.com/s/18Rq25ll71RZ_Y2Dy1Okfqw 提取码:idcg
  8. 注意:我们这是利用虚拟机进行服务器部署,有条件的可以去用云服务器,例如华为云、阿里云,原理都是一样;

分享包里的内容分享包里面的内容

安装jdk

这里虚拟机已经安装好并且可以正常使用(能连网)。
步骤:
1.进入进入终端(利用xshell连接服务器)

2.查看是否有原先的java jdk : rpm -qa | grep java
在这里插入图片描述
3.删除现有的java文件:rpm -e --nodeps 文件名
在这里插入图片描述

4.创建存放jdk的目录(命令):mkdir /usr/local/java

5.利用xftp或者winscp将我们下载好的jdk上传到服务器上刚刚创建的java目录下
在这里插入图片描述
6.到终端上查看文件并解压:解压命令: tar -zxvf jdk-8u161-linux-x64.tar.gz
在这里插入图片描述
7.配置linux服务器上面的java的环境变量:vim /etc/prifile
在配置文件的最下面添加然后保存并退出:(vim命令不会用和以下环境变量含义不清楚的童鞋去百度一下)

JAVA_HOME=/usr/local/java/jdk1.8.0_161
JRE_HOME=/usr/local/java/jdk1.8.0_161/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

8.重置一下我们修改了的这个配置文件:source /etc/profile
9.这时候我们看一下java的版本:java -version
在这里插入图片描述
这时候看到java:未找到命令的错误,原因是我们还需要去下载一个合适我们的jdk,这样就可以正常使用了。
10.看一下jdk相关的安装包:yum search java | grep jdk
在这里插入图片描述
11.找到上述图片的这个版本的jdk进行下载安装:yum install -y java-1.8.0-openjdk-devel.x86_64
在这里插入图片描述
12.下载安装完毕后执行命令:java -version、 java、 javac
有相应的回显消息以及版本信息就说明java的jdk安装和配置成功了。

13.写一个小的java程序来做最后的检测:
创建java程序:touch First.java
编写第一个java程序:

public class First {
	public static void main(String[] args) {
		System.out.println("hello,world!");
              }
}

编译这个java程序:javac First.java
运行这个java程序:java First
在这里插入图片描述
14.这里就把dk的安装讲完了,下面我们来将tomcat的安装。

Tomcat 安装部署

1.创建存放tomcat的目录:mkdir /usr/local/tomcat

2.通过xftp或者winscp上传tomcat9.0安装包

3.解压安装包: tar -xvf apache-tomcat-9.0.41.tar.gz

4.查看解压是否成功:ls
在这里插入图片描述
5.进入tomcat解压包内开启tomcat服务:sh startup.sh
在这里插入图片描述
6.在linux虚拟机的桌面端打开tomcat:localhost :8080
在这里插入图片描述
有这个界面说明我们的tomcat在linux服务器上部署成功了,本地可以访问,下面要做的就是让服务器能被其他用户访问。

7.开放8080端口:
第一步:检查防火墙状态(必须是开启的)
systemctl status firewalld
在这里插入图片描述
第二步:开放800端口:

firewall-cmd --add-port=8080/tcp --permanent 

如果发现有:bash: firewall: 未找到命令...这个错误
输入这条命令安装firewall:yum install firewalld

第三步:重启防火墙:

systemctl restart firewalld

第四步:重新加载配置:

firewall-cmd --reload

第五步:在windows环境下访问linux安装的tomcat服务
在windows网址上输入:服务器ip地址:8080
在这里插入图片描述
这样就代表成功了。

8.将我们的windows中的创建的web项目部署到llinux服务器上试一下能否正正常使用。

第一步:这里我们用最最简单的web项目文件就行了,因为到这里的话我们数据库还没安装,所以这里用myecplise默认创建的项目即可。

第二步:将创建好的web项目的war包导出。(导出方法可以看我其他的帖子)

第三步:将导出来的war包上传到服务器tomcat文件中webapps的这个文件夹里面。
在这里插入图片描述
第四步:重启tomcat服务。并通过windows网址访问这个web项目。
网址栏:服务器ip:8080/web项目名称
在这里插入图片描述
9.这里tomcat服务就已经搭建好了。

MySQL数据库部署

1.创建存放mysql的目录:mkdir /usr/local/mysql

2.用文件传输工具将mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar包上传到mysql文件夹中去。

3.解压MySQL安装包:tar -xvf mysql-8.0.22-1.el7.x86_64.rpm-bundle.tar
在这里插入图片描述
4.删除服务器内自带的数据库mariadb:

  1. 检测服务器内有没有mariadb数据库:rpm -qa | grep mariadb
    在这里插入图片描述
    2.删除mariadb数据库:rpm -e mariadb-libs-5.5.65-1.el7.x86_64 --nodeps

5.这里要安装四个安装包:

1.mysql-community-common-8.0.22-1.el7.x86_64.rpm
2.mysql-community-client-8.0.22-1.el7.x86_64.rpm
3.mysql-community-libs-8.0.22-1.el7.x86_64.rpm
4.mysql-community-server-8.0.22-1.el7.x86_64.rpm

安装命令:

rpm -ivh mysql-community-common-8.0.22-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.22-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.22-1.el7.x86_64.rpm --force
rpm -ivh mysql-community-server-8.0.22-1.el7.x86_64.rpm --force

6.初始化mysql:mysqld --initialize

7.防火墙配置:

chown mysql:mysql /var/lib/mysql -R    //授权防火墙
systemctl start mysqld
systemctl enable mysqld

8.获取数据库初始密码:cat /var/log/mysqld.log | grep password
在这里插入图片描述
可以看到这里生成的随机密码是etXHD9hPP2(X
9.登录数据库:mysql -uroot -p
在这里插入图片描述
注意:在写密码的饿时候没有回显,所以直接复制粘贴回车就好,不要怕没写上密码。
10.更改数据库密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; //root是自己更改后的密码

在这里插入图片描述
11.使用新密码登录:
在这里插入图片描述
12.目前已经安装好数据库了,现在要做的就是管理数据库。这里使用的是Navicat.

13.数据设置远程访问:

create user 'root'@'%' identified with mysql_native_password by 'root';

在这里插入图片描述
放开权限:grant all privileges on *.* to 'root'@'%' with grant option;

重新加载配置:flush privileges;
在这里插入图片描述
14.开放3306端口:

firewall-cmd --add-port=3306/tcp --permanent   //开放3306端口
systemctl restart firewalld    //重启防火墙
firewall-cmd --reload    /重新加载防火墙配置

15.连接windows上面的Navicat进行测试:
在这里插入图片描述
上述图片内容表示配置成功。(如果还有连不上的话可能就是mysql的时区问题,解决命令(数据库):set global time_zone=‘+8:00’;)

总结

目前很多服务都是部署在linux环境下的,掌握如何将项目发布到服务器端对我们自身有很大的好处,这个帖子把项目部署linux所有的环境软件配置讲的非常详细,希望大家看了有所收获,第一次写帖子,希望多多支持,爱你们!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/onlyone__/article/details/113662721

智能推荐

OpenStack对象存储监控(OpenStack Object Storage Monitoring)_对象存储 监控-程序员宅基地

文章浏览阅读1.9k次。翻译自OpenStack1.8.0官方文档第六章:http://docs.openstack.org/trunk/openstack-object-storage/admin/content/ch_introduction-to-openstack-object-storage-monitoring.html_对象存储 监控

cs架构接口协议(常用socket协议)与bs架构接口协议(常用http协议)_cs架构传输协议-程序员宅基地

文章浏览阅读6.8k次。Socket原理以及与websocket、http的区别:B/S的系统通常使用http协议进行客户端和服务器商的信息交换,C/S的系统通常使用socket协议进行信息交换参考:https://blog.csdn.net/qq_39813400/article/details/106721810Socket原理:服务端有一个进程(或者多个进程)在指定端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传输。客户端在需要的时刻发出向服务器端的连接请求。_cs架构传输协议

信息安全原理与实践(第2版) [Mark Stamp 著][张戈 译] PDF完整版_《信息安全原理与实践(第2版)》张戈译,清华大学pdf出版社.-程序员宅基地

文章浏览阅读6.7k次,点赞20次,收藏18次。《信息安全原理与实践(第2版)》原书名:Information Security: Principles and Practice, 2nd Edition作者: (美)Mark Stamp译者: 张 戈丛书名: 安全技术经典译丛出版社:清华大学出版社ISBN:9787302317852上架时间:2013-5-30出版日期:2013 年5月开本:16开页码:..._《信息安全原理与实践(第2版)》张戈译,清华大学pdf出版社.

springboot+quartz以持久化的方式实现定时任务_持久化 quartz mysql5 springboot application.yml-程序员宅基地

文章浏览阅读977次。@SpringBootApplication@EnableSchedulingpublic class Application {public static void main(String[] args) { SpringApplication.run(Application.class, args);}// cron为每秒执行一次@Scheduled(cron = "* * * * * ?")public void print(){ System.out.println("_持久化 quartz mysql5 springboot application.yml

解决C++代码在VSCode中无法快速跳转的问题。_vscode c++跳转特别慢-程序员宅基地

文章浏览阅读1.8w次,点赞2次,收藏34次。在做C++项目的时候, 发现在VSCODE里面的, 跳转很慢, 有时候还跳转失败。并且代码提示也不够友好。让人十分蛋疼。找了找解决方案。发现用GNU Global比较靠谱。下面是配置方法1.GNU Global下载地址:GNU Global(6.5以上):http://adoxa.altervista.org/global/2.在VS Code中安装插件C++ Intellisense(此插件需要GNU Global的支持)3.将下载的.GNU Global解压到C盘根目录4.配置系统pat_vscode c++跳转特别慢

spark 相关性分析_SparkML之相关性分析--皮尔逊相关系数、Spearman-程序员宅基地

文章浏览阅读985次。相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。但是,请记住,相关性不等于因果性两个重要的要素从非常直观的分析思路来说,比如分析身高和体重,我们会问个问题:.身高越高,体重是不是越重?问题细分为两个方向:1,身高越高,体重越重还是越轻。2,身高每增加 1 ,体重又是增加多少或减少多少。這就是..._spark相关性是什么和什么相关

随便推点

Android获取Manifest中meta-data元素的值_kotlin 获取清单文件里的meta-data-程序员宅基地

文章浏览阅读1.8w次,点赞6次,收藏11次。转载:http://blog.csdn.net/zhanghao_hulk/article/details/8662917在AndroidManifest.xml中,< meta-data>元素可以作为子元素,被包含在< activity>、< application> 、< service>和< receiver>元素中,不同的父元素,在应用时读取的方法也不同。1 :在Activity应用< me_kotlin 获取清单文件里的meta-data

考研英语一小作文笔记_i am very delighted to recall the past time with y-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏13次。书信:LetterEmail通知:Noticen通知)announce v宣布)海报:Poster (考研没考过,考的可能性不大)简历:Resume假条:A Request for Leave。_i am very delighted to recall the past time with you

UI动效设计工具都有哪些?-程序员宅基地

文章浏览阅读131次。UI动效可以在有限的空间内传递更多的信息,可以快速吸引用户的注意力,但可以直观地呈现,给用户更流畅的操作体验。推荐4个UI动效软件,帮助您有效地制作UI设计动态效果。即时设计是一款「专业UI设计工具」,不受平台限制,打开浏览器即可开始创作。它不仅具备精细化设计能力,还自带丰富的共享设计资源,同时支持多人实时协作、设计成果一键分享交付,让设计师在工作中每一个步骤上都能拥有更高效愉悦的体验。丰富的交互事件配合智能动画,让设计师能够非常快速地实现各种超棒的交互动效,模拟真实效果~

什么是机器学习中的正则化(Regularization)_机器学习中正则化的名词解释-程序员宅基地

文章浏览阅读5.7k次,点赞5次,收藏17次。https://www.toutiao.com/a6700336339163808267/Regularization:在现有Features不变情况下,降低部分不重要Features的影响力。这个方法有助于有很多Features且每个Features都有贡献的Neural Network避免Overfitting。Regularization不是新鲜的词,我这里主要记录其在神经..._机器学习中正则化的名词解释

使用WinINet和WinHTTP实现Http访问_wininet send post data-程序员宅基地

文章浏览阅读1.9k次。原文:http://blog.csdn.net/zeng622peng/article/details/5967329Http访问有两种方式,GET和POST,就编程来说GET方式相对简单点,它不用向服务器提交数据,在这个例程中我使用POST方式,提交数据value1与value2,并从服务器得到他们的和(value1 + value2)。为实现Http访问,微软提供了二套API:Wi_wininet send post data

Android启动时间----获取APP 冷/热启动时间_android 如何监听app冷启动和热启动-程序员宅基地

文章浏览阅读3.8k次。最近在研究Android APP性能测试。所以发现一些有趣的东西,在这里进行分享。我们先讲第一个内容,如何获取APP冷/热启动时间?为什么要做这个测试,道理其实很简单,如果启动APP特别耗时的话,用户反馈百分之99不好。所以在这里我们可以获取APP冷/热启动时间,同竞品进行比较。环境准备(可参考我写的monkey测试)adb 手机/模拟器 cmder python2获取APK..._android 如何监听app冷启动和热启动

推荐文章

热门文章

相关标签