在阿里云服务器上如何部署Java Web项目(Linux系统)?

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 前段时间刚完成一个JavaWeb项目,想着怎么部署到服务器上,边学边做,花了点时间终于成功部署了,这里总结记录一下过程中所遇到的问题及解决方法。之所以选择阿里云,考虑到它是使用用户最多也是最广泛的云服务器。

前段时间刚完成一个JavaWeb项目,想着怎么部署到服务器上,边学边做,花了点时间终于成功部署了,这里总结记录一下过程中所遇到的问题及解决方法。之所以选择阿里云,考虑到它是使用用户最多也是最广泛的云服务器。本人选择的是系统镜像:CentOS 7.3 64位。

根据需要部署了以下环境:

1、配置Java环境

2、安装Tomcat及配置、war包部署

3、安装MySql及配置、运行sql文件

准备工作:

1、首先需要开通项目用到的端口,例如8080端口,下图为本人开通的端口(授权对象ip就是被允许访问端口的主机ip,也就是阿里云公网ip,可以是其它云服务ip),仅供参考。详情点击打开连接

image

2、网上很多教程是通过Xshell终端模拟器访问远端不同系统下的服务器,以及配合Xftp文件传输客户端来上传文件(如Java、Tomcat安装包)。这里推荐使用MobaXterm,有SSH链接功能,也有FTP功能,还可以包括VNC远程桌面连接功能。MobaXterm官网。

3、下载Linux版本的jdk,选择后缀是.tar.gz的,如下图所示。点击打开链接。

image

4、下载Tomcat安装包,本人下载的是Tomcat 8.5.33版本。点击打开链接。

5、打开MobaXterm,连接系统。将上述两个安装包上传至指定目录下。操作步骤如下。

a.点击Session,选中SSH协议,输入阿里云公网IP地址,点击OK。

image

   b.打开之后初始目录是root,返回上一级再打开home目录,将安装包均上传至该目录。

image

    c.在usr目录下创建java,再在java下创建以下两个目录。

    image

1、配置Java环境

a.运行解压命令:tar -xzf /home/jdk-8u181-linux-x64.tar.gz -C /usr/java/jdk

b.配置环境变量(或者直接打开etc目录下的profile文件):vi /etc/profile

在文件末尾处添加以下内容并保存:

1 #set java environment 2 export JAVA_HOME=/usr/java/jdk/jdk1.8.0_181 3 export JRE_HOME=/usr/java/jdk/jdk1.8.0_181/jre 4 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 5 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

保存命令:source /etc/profile

c.验证安装,如下所示表示成功:

image

2、安装Tomcat及配置、war包部署

a.运行解压命令:tar -xzf /home/apache-tomcat-8.5.33.tar.gz -C /usr/java/tomcat

b.配置环境,如下图所示,执行命令或者点击文件均可:

image

在文件末尾处添加以下内容并保存:

1 export JAVA_HOME=/usr/java/jdk/jdk1.8.0_181 2 export JRE_HOME=/usr/java/jdk/jdk1.8.0_181/jre

c.在bin目录执行如图所示命令./startup.sh,验证安装:

image

或者浏览器输入阿里云公网IP地址加上8080端口,页面如下图所示表示成功:

image

d.将JavaWeb项目的war包,上传至Tomcat的webapps目录下即可,如下图所示:

image

这时在8080端口后加上项目名称,即可运行此项目,如下图所示(如果有对应数据库的话,下一条继续介绍如何配置数据库):

image

3、安装MySql及配置、运行sql文件

a.安装MySQL官方的yum repository:

1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

b.下载rpm包:

1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

c.安装MySQL服务,最后会出现个complete!:

1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# yum -y install mysql-community-server

d.修改MySQL配置文件(或者修改etc目录下的my.cnf文件并保存),跳过密码登录:

1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# vi /etc/my.cnf

末尾处添加如下内容:

1 skip-grant-tables

e.启动MySQL服务:

1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# systemctl start mysqld.service

f.登录MySQL:

1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# mysql -u root

g.修改密码:

1 mysql> use mysql; 2 Database changed 3 mysql> update mysql.user set authentication_string=password('1234') where user='root' ;

h.退出mysql,重新在刚刚那个配置文件中去掉skip-grant-tables,然后重启MySQL:

1 mysql> exit
1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# vi /etc/my.cnf
1 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# systemctl restart mysqld.service

i.使用新密码登录MySql,如下图所示:

image

j.必须重设密码,并设置密码等级与最小长度:

1 SET PASSWORD = PASSWORD('1234');
1 mysql> set global validate_password_policy=0;  //改变密码等级
1 mysql> set global validate_password_length=4;   //改变密码最小长度

k.再次修改密码:

1 SET PASSWORD = PASSWORD('1234');

l.配置远程登录(root为用户名,1234为密码),以及刷新系统权限:

1 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
1 mysql> flush privileges;

m.创建数据库并运行sql文件:

1 mysql> create database corporate_genealogy;
1 mysql> use corporate_genealogy;
1 mysql> source /home/corporate_genealogy.sql;

n.使用Navicat数据库管理工具连接阿里云数据库,如下图所示:

image

最后附上Linux系统下MySql数据库的常用操作(数据库操作必须以   ';'  号结尾):    点击打开链接

本文部分参考学习了:https://www.cnblogs.com/shanheyongmu/p/6070618.html

          http://www.cnblogs.com/wangshen31/p/9556804.html

至此是对JavaWeb项目部署部分功能的一个简单介绍,后续会继续说明其它部分功能所遇到的问题以及解决方法。

如有疏漏错误之处,还请不吝赐教!

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
监控 Linux Shell
|
2天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
4天前
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
16 5
|
5天前
|
缓存 Unix Linux
服务器linux!!!
本文介绍了计算机的演变历史、硬件基础知识及服务器相关知识。从电子管时代的ENIAC到冯-诺伊曼架构,再到现代计算机系统组成,详细讲解了计算机的发展历程。此外,文章还介绍了服务器的分类、品牌、硬件组成以及IDC机房的上架流程,为读者提供了全面的技术背景知识。
20 0
服务器linux!!!
|
7天前
|
人工智能 安全 Linux
|
9天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
50 3
|
11天前
|
JavaScript 前端开发 数据安全/隐私保护
Web开发者必看:手把手教你如何轻松播放m3u8流地址,解锁视频播放新技能,让你的项目更上一层楼!
【10月更文挑战第23天】随着互联网技术的发展,m3u8格式因良好的兼容性和高压缩率被广泛用于网络流媒体传输。本文介绍如何在Web端播放m3u8流地址,包括引入视频播放器(如Video.js)、创建播放器容器、初始化播放器及播放m3u8流的具体步骤。此外,还涉及处理加密m3u8流的示例。
30 1
|
12天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
7天前
|
Linux
Linux 修改服务器时间
【10月更文挑战第27天】Linux 修改服务器时间
20 0
|
9天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息