以前作项目都是在本地跑,最近遇到须要在在云服务器(阿里云或者腾讯云均可以,差很少)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去以后写一下部署的步骤与过程,一是帮助本身总结记忆,二是但愿能帮到有一样需求的小伙伴。话很少说,下面开始。html
首先,个人Java Web项目是一个很简单的学生管理系统(相信不少人都作过吧,挺简单的),基于Tomcat和MySQL,因此此次在云服务器上部署也是基于这两个的,在开始以前,你本地首先要有一个能跑起来的项目,例以下面这样: java
第一步,你须要购买一个云服务器mysql
腾讯云或者阿里云均可以这两个在国内都不错,阿里云可能更好一些(虽然我用的是腾讯云2333),若是你是学生的话,购买还有学生优惠,每月只要10元钱差很少,这里是腾讯云学生优惠地址和阿里云学生优惠地址web
在你购买了你想要的服务器后,就能够进入控制台查看你购买的服务器了,我购买的云主机的系统的Ubuntu,固然选择其余系统也能够,好比据说比较火的CentOS: sql
123.207.64.17
),当你把项目部署到云服务时,其余人就能够经过公网IP来访问,在购买了以后,通常服务器就会自动开始运行,你能够在本地打开CMD命令行,输入ping 你的公网IP
来测试是否能够访问,若是出现下面的提示,就说明能够访问:
WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,而且能够直接编辑文件。说白了就是能够在你本地计算机和云服务器之间传输文件的东西,可让你把本地项目放到云服务器上面去。WinSCP界面以下: apache
PuTTY是一个用来远程管理云服务器的东西,相似于一个远程Linux终端,能够进行各类命令行操做,项目的部署大部分操做都是经过这个软件进行的。 ubuntu
在第一张图中,HostName就是公网IP,端口号选择22,协议选择SSH,在SaveSessions里面给你的这个会话起个名字好比个人TencentWebServer,点击Sava保存,而后Open(以后再次登陆时就能够直接双击保存过的那个名字就好了),登陆成功后在终端输入用户名密码就是第二张图中的样子。浏览器
第三步,云服务器上安装jdk,Tomcat,MySQLtomcat
在上面的步骤完成后,接下来就是安装配置服务器上的项目环境了,由于我部署的这个项目是基于Java+Tomcat+MySQL的,因此须要安装上面那几个。
在进行下面的步骤以前,先更新源
sudo apt-get update
复制代码
云服务器安装jdk
在网上搜了很久,不少都很麻烦,其实可直接一条命令搞定,直接在PuTTY终端里面输入
sudo apt-get install openjdk-8-jdk
复制代码
(我安装的是jdk8,你也能够安装别的版本,和你本地项目用的版本同样就行),以后也不用配置环境变量(虽然我看到有的博客里写要配置环境变量),以后经过
java
复制代码
和
javac
复制代码
这两个命令来测试是否安装成功了便可:
若是下面出现一大堆选项,就说明成功了。
云服务器安装Tomcat
安装Tomcat有好多种方式,能够在本地去Tomcat官网下载再用WinSCP上传到云服务器上,也能够直接在云服务器上命令行下载,本地下载再上传比较简单,就很少说了,说说用命令行操做。我是经过wget
命令来下载的,在终端输入
wget https://www.apache.org/dist/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz
复制代码
然而因为众所周知的缘由,在国内直接从官网下载速度很慢,推荐用国内镜像,国内有不少镜像(例如,清华镜像站、华科镜像站),我用的是清华的镜像,因此命令变为
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz
复制代码
下载完以后你就能够在你输入命令时所在的路径下找到下载好的压缩包,你可使用pwd
命令来查看当前的路径,
执行解压命令:
sudo tar -xvzf apache-tomcat-8.5.35.tar.gz
复制代码
解压以后是个文件夹,能够将这个文件夹移到其余位置,我是在usr目录下新建了个Tomcat目录,以后放了进去。
命令行进入apache-tomcat-8.5.35目录下的bin目录,执行ls
命令,能够看到下面这些文件:
有时候进入bin目录会提示没有权限Permission denied
,这时能够获取root权限,以后再进入,就能够看到里面的文件了。这里面有两个会比较常常用到,分别是startup.sh
和shutdown.sh
,分别用来开启Tomcat服务和关闭。 执行
./startup.sh
复制代码
这样就是开启Tomcat服务了,这时候你在浏览器地址栏输入http://你的公网IP:8080
(好比个人就是http://123.207.64.17:8080)就能够看到Tomcat服务的初始界面:
若是你看到了这个界面,Tomcat服务就算是成功开启了,以后想要关闭能够执行./shutdown.sh
。
有的人在这里可能会遇到一些问题,就是命令行中以及显示Tomcat started,可是在浏览器中仍是访问不了页面,那么多是由于你的云服务的端口没有开放,须要去云服务器安全组中设置访问规则。
腾讯云:进入控制台 → 选择左边侧栏的安全组 → 点击新建 → 以下图所示配置便可
阿里云:进入控制台 → 选择左边侧栏的安全组 → 配置规则 → 快速建立规则 → 以下图所示配置便可
其余一些参考:Linux Ubuntu 安装Tomcat
云服务器安装MySQL
Ubuntu上安装MySQL其实挺简单的,只须要下面几条命令:
sudo apt-get install mysql-server
复制代码
sudo apt-get isntall mysql-client
复制代码
sudo apt-get install libmysqlclient-dev
复制代码
在执行完毕以后,就会安装,安装过程可能会提示让设置MySQL登陆密码什么的,这个密码就是你Java Web项目里链接数据库时用到的密码,在安装完以后,能够经过下面这个命令来检查是否安装成功
sudo netstat -tap | grep mysql
复制代码
若是出现下面的,就表示成功了,MySQL的socket处于listen状态
service mysql start
和service mysql stop
)而后你须要在命令行登陆MySQL,能够用下面的命令来登陆 mysql -u root -p
复制代码
以后用show databases;
就能够看到你的数据库了,能够看到图中,student这个数据库就是我新建的用来存放学生管理系统这个项目的数据库。以后,你须要新建你的JavaWeb项目所需的数据库。
第四步,将JavaWeb项目打包成war包
在上面几个步骤都完成以后,就只须要把本地项目放上去就能够了,首先须要将项目打包成war包,我使用的IDE是IntelliJ IDEA,打包其实很简单,这里就再也不说了(实际上是打字打累了233333),给几个我当时参考的连接吧:
Idea将javaweb项目打包成war包并部署到服务器的Tomcat上,
使用IneliJ IDEA 2016将Java Web项目导出为War包
在打包完成以后,使用WinSCP服务器图形化文件管理工具,把这个war包拖拽到云服务器的tomcat/webapps/
目录下,以后重启Tomcat(先./shutdown.sh
再./startup.sh
),以后这个war包就会自动解压好了,以下图:
有时候可能会出现访问时没有权限的问题,没法进入那个文件夹,以下图:
这时候能够退出WinSCP,从新登陆,在登陆时点进去高级选项,按照下图设置便可:
第五步,在浏览器输入url访问你的Java Web项目
若是上面几部都成功的话,如今你就能够在浏览器中访问你部署在云服务器上的项目了,在浏览器地址栏中输入http://公网IP:8080/项目路径
,其中项目路径通常就是你放入tomcat/webapps/
下面解压后的文件夹名,好比个人就是http://123.207.64.17:8080/StudentManager/
通过上面几个步骤,咱们就成功地把基于Tomcat和MySQL的Java Web项目部署到的云服务器上。若是你按照上面的步骤来作遇到了什么问题,欢迎在下面留言交流。