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

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

1、配置Java环境

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

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

准备工作:

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

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

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

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

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

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

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

  

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

    

1、配置Java环境

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

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

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

 #set java environment
export JAVA_HOME=/usr/java/jdk/jdk1..0_181
export JRE_HOME=/usr/java/jdk/jdk1..0_181/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

保存命令:source /etc/profile

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

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

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

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

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

 export JAVA_HOME=/usr/java/jdk/jdk1..0_181
export JRE_HOME=/usr/java/jdk/jdk1..0_181/jre

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

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

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

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

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

a.安装MySQL官方的yum repository:

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

b.下载rpm包:

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

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

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

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

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

末尾处添加如下内容:

 skip-grant-tables

e.启动MySQL服务:

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

f.登录MySQL:

 [root@iZwz9eu3mkqq1njlkrfhc8Z ~]# mysql -u root

g.修改密码:

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

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

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

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

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

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

k.再次修改密码:

 SET PASSWORD = PASSWORD('');

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

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

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

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

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

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

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

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

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

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

基于阿里云服务器Linux系统部署JavaWeb项目的更多相关文章

  1. Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql)

    转载自:Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql) 我的系统是阿里云的,香港的系统,本人选择的是系统镜像:CentOS 7.3 64位. 具体步骤: 配置Jav ...

  2. 阿里云服务器linux系统上 安装node环境

    今天将阿里云服务器重windows系统重置成了linux系统, 点击上面的实例名称,进入到 点击  更换系统盘   选择linux 的centos版本(操作前需要  停止实例) 弄好后,启动实例 下面 ...

  3. 基于阿里云服务器Linux系统安装配置Redis

    一.Redis简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(有 ...

  4. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  5. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  6. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

  7. 阿里云服务器Linux系统安装配置ElasticSearch搜索引擎

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...

  8. 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器

    阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 我在阿里云购买的服务器配置 CPU:1核 内存:2G 系统盘:40G 公共镜像:CentOS 6.5 64位 公网带宽:1Mbps ...

  9. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

随机推荐

  1. Intellij IDEA中Maven解决依赖失效

    最近在折腾Maven和Sonatype的Nexus, 倒霉催的国内和公司网络... Nexus配合finalspeed或者kcptun倒是很给力,  但是Intellij就经常出问题, 出现红字也不动 ...

  2. maven项目发布到Tomcat丢失jar包

    昨天看了一篇tomcat设置的文章,说要把第一个勾上,这样不需要更新到tomcat.  一启动tomcat就发现丢包.后来在网上看了许多文章,说要update maeven项目,然后你就会发现启动过程 ...

  3. asp.net中Page.ClientScript.RegisterStartupScript用法小结

    ClientScript.RegisterStartupScript(Page.GetType(), "Show", "alert('" + l_strConf ...

  4. 64 位系统(win7/win8) 下使用C# 程序问题

    1  C# 程序是控制台类,使用的组件如果是32位,建议在编译的时候,platform (X86,AnyCPU,X64)选择X86 .使用X86 模式编译,才能调用32位程序的API. 2  ASP. ...

  5. 微信小程序【消息推送服务器认证C# WebAPI】

    参考微信开发文档: https://developers.weixin.qq.com/miniprogram/dev/api/custommsg/callback_help.html 代码可用 /// ...

  6. 使用dva框架的总结

    最近的项目是react+dva+atd+webpack的一个后台项目,刚接触dva就感觉很喜欢,很简洁用着很爽. 关于使用redux中的一些问题 1.文件切换问题. redux的项目通常哟啊分为red ...

  7. [USACO11OPEN]奶牛跳棋Cow Checkers(博弈论)

    题目描述 One day, Bessie decides to challenge Farmer John to a game of 'Cow Checkers'. The game is playe ...

  8. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--L-用来作弊的药水

    链接:https://www.nowcoder.com/acm/contest/90/L 来源:牛客网 1.题目描述 -- 在一个风雨交加的夜晚,来自异世界的不愿透露姓名的TMK同学获得了两种超强药水 ...

  9. 微信小程序navigator无法跳转情况

    情况有三种 跳转的页面没有在app.json中注册 跳转的路径不正确 以上两种在命令行(console)中都会提示 跳转的页面在TabBar中,需要将open-type属性是设置为switchTab

  10. node-zookeeper-dubbo 和egg实现远程连接

    基于js的node-zookeeper-dubbo 和egg实现远程连接服务 const nzd = require('node-zookeeper-dubbo'); const opt={ appl ...