在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)

以前作项目都是在本地跑,最近遇到须要在在云服务器(阿里云或者腾讯云均可以,差很少)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去以后写一下部署的步骤与过程,一是帮助本身总结记忆,二是但愿能帮到有一样需求的小伙伴。话很少说,下面开始。javascript

首先,个人Java Web项目是一个很简单的学生管理系统(相信不少人都作过吧,挺简单的),基于Tomcat和MySQL,因此此次在云服务器上部署也是基于这两个的,在开始以前,你本地首先要有一个能跑起来的项目,例以下面这样:html

本地项目

在有了本地项目以后,下面就是开始部署了。java

  1. 第一步,你须要购买一个云服务器mysql

    腾讯云或者阿里云均可以这两个在国内都不错,阿里云可能更好一些(虽然我用的是腾讯云2333),若是你是学生的话,购买还有学生优惠,每月只要10元钱差很少,这里是腾讯云学生优惠地址阿里云学生优惠地址web

    在你购买了你想要的服务器后,就能够进入控制台查看你购买的服务器了,我购买的云主机的系统的Ubuntu,固然选择其余系统也能够,好比据说比较火的CentOS:sql

    腾讯云主机

    在上图中,就能够看到云服务器的详细信息了,而且腾讯云或者阿里云会给每一个云服务器提供一个公网IP和内网IP(好比个人公网IP就是123.207.64.17),当你把项目部署到云服务时,其余人就能够经过公网IP来访问,在购买了以后,通常服务器就会自动开始运行,你能够在本地打开CMD命令行,输入ping 你的公网IP来测试是否能够访问,若是出现下面的提示,就说明能够访问:数据库

    ping命令测试

    在购买了云服务后,你须要设置你云服务器的用户名和登陆密码,就至关于你打开本地电脑还须要用户名和密码同样(登陆名通常都是它提供好的,好比腾讯云Ubuntu就默认是ubuntu,阿里云CentOS默认是root),以后你就能够在下面的步骤中,经过用户名和密码来登陆你的云服务器。apache

  2. 第二步,本地下载安装WinSCPPuTTYubuntu

    WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,而且能够直接编辑文件。说白了就是能够在你本地计算机和云服务器之间传输文件的东西,可让你把本地项目放到云服务器上面去。WinSCP界面以下:浏览器

    登陆WinSCP登陆成功界面

    在第一张图中,你须要选择SCP协议,主机名就是腾讯云或阿里云给你提供的公网IP,端口号选择22,用户名密码就是你上一步中设置的用户名和密码,以后点击登陆就能够,登陆成功后就是第二张图,分为左右两栏,左边是你本地计算机,右边是云服务的目录,把左边的文件往右边拖就是上传到云服务器,从右边往左边拖动文件就是从云服务器下载到本地。

    PuTTY是一个用来远程管理云服务器的东西,相似于一个远程Linux终端,能够进行各类命令行操做,项目的部署大部分操做都是经过这个软件进行的。

    登陆PuTTY

  3. 登陆成功界面

    在第一张图中,HostName就是公网IP,端口号选择22,协议选择SSH,在SaveSessions里面给你的这个会话起个名字好比个人TencentWebServer,点击Sava保存,而后Open(以后再次登陆时就能够直接双击保存过的那个名字就好了),登陆成功后在终端输入用户名密码就是第二张图中的样子。

  4. 第三步,云服务器上安装jdk,Tomcat,MySQL

    在上面的步骤完成后,接下来就是安装配置服务器上的项目环境了,由于我部署的这个项目是基于Java+Tomcat+MySQL的,因此须要安装上面那几个。

    在进行下面的步骤以前,先更新源

    sudo apt-get update

    更新源

    • 云服务器安装jdk

      在网上搜了很久,不少都很麻烦,其实可直接一条命令搞定,直接在PuTTY终端里面输入

      sudo apt-get install openjdk-8-jdk

      (我安装的是jdk8,你也能够安装别的版本,和你本地项目用的版本同样就行),以后也不用配置环境变量(虽然我看到有的博客里写要配置环境变量),以后经过

      java

      javac

      这两个命令来测试是否安装成功了便可:

      java命令测试javac命令测试

      若是下面出现一大堆选项,就说明成功了。

      其余一些参考:Ubuntu下安装最新OpenJdk1.8Ubuntu16.04 安装openjdk-7-jdk

    • 云服务器安装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命令来查看当前的路径,

      wget下载Tomcat压缩包Tomcat压缩包

      执行解压命令:

      sudo tar -xvzf apache-tomcat-8.5.35.tar.gz

      解压以后是个文件夹,能够将这个文件夹移到其余位置,我是在usr目录下新建了个Tomcat目录,以后放了进去。

      命令行进入apache-tomcat-8.5.35目录下的bin目录,执行ls命令,能够看到下面这些文件:

      查看Tomcat bin目录下文件

      有时候进入bin目录会提示没有权限Permission denied,这时能够获取root权限,以后再进入,就能够看到里面的文件了。这里面有两个会比较常常用到,分别是“startup.sh”和“shutdown.sh”,分别用来开启Tomcat服务和关闭。 执行

      ./startup.sh

      开启tomcat

      这样就是开启Tomcat服务了,这时候你在浏览器地址栏输入http://你的公网IP:8080(好比个人就是http://123.207.64.17:8080)就能够看到Tomcat服务的初始界面:

      访问公网IP

      若是你看到了这个界面,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状态

      检查MySQL是否安装成功

      这个时候MySQL服务已经启动了(若是以后须要开启或关闭的话能够用service mysql startservice mysql stop)而后你须要在命令行登陆MySQL,能够用下面的命令来登陆

      mysql -u root -p
      

        

      登陆MySQL

      以后用 show databases; 就能够看到你的数据库了,能够看到图中,student这个数据库就是我新建的用来存放学生管理系统这个项目的数据库。以后,你须要新建你的JavaWeb项目所需的数据库。

  5. 第四步,将JavaWeb项目打包成war包

    在上面几个步骤都完成以后,就只须要把本地项目放上去就能够了,首先须要将项目打包成war包,我使用的IDE是IntelliJ IDEA,打包其实很简单,这里就再也不说了(实际上是打字打累了233333),给几个我当时参考的连接吧:

    Idea将javaweb项目打包成war包并部署到服务器的Tomcat上

    将javaweb项目打成war包,

    使用IneliJ IDEA 2016将Java Web项目导出为War包

    在打包完成以后,使用WinSCP服务器图形化文件管理工具,把这个war包拖拽到云服务器的tomcat/webapps/目录下,以后重启Tomcat(先./shutdown.sh./startup.sh),以后这个war包就会自动解压好了,以下图:

    解压后

    有时候可能会出现访问时没有权限的问题,没法进入那个文件夹,以下图:

    没法访问

    这时候能够退出WinSCP,从新登陆,在登陆时点进去高级选项,按照下图设置便可:

    点击高级高级设置

  6. 第五步,在浏览器输入url访问你的Java Web项目

    若是上面几部都成功的话,如今你就能够在浏览器中访问你部署在云服务器上的项目了,在浏览器地址栏中输入http://公网IP:8080/项目路径,其中项目路径通常就是你放入tomcat/webapps/下面解压后的文件夹名,好比个人就是http://123.207.64.17:8080/StudentManager/

    访问部署好以后的项目

通过上面几个步骤,咱们就成功地把基于Tomcat和MySQL的Java Web项目部署到的云服务器上。若是你按照上面的步骤来作遇到了什么问题,欢迎在下面留言交流。