阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

阿里云通用代金卷活动(土豪购买可忽略)

购买前领取幸运券,可能会有折上折优惠哦:领取幸运抵扣卷
购买地址

win10直接连接阿里云服务器(Linux):

【如果使用XShell可以跳过】

  1. 首先你得安装下telnea | n k % Bt客户端,系统自带的。
    控制面板——程序与功能——启动或关闭windows功能

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    2.将Telnet客户端勾上,点确定(等待安装完成即可)。

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    3.win键+R键 然后输入CMD 回车打开CMD窗口
    输入 ssh 账号名@服务器ip地址:端口号
    例如: ssh root@g = ` ^ ,111.222.1k i o [ D y # :.2G 5 v P v Z h
    第一次可能需要输入yes,{ L 2 $ 7 ) |如果输了no就无法7 q % r连接了
    然后再让你输入密码(输入密码时,你是看不出有任何变e c K ] M ^ E w N化的【因为Linux觉得“没有消息就是最好的消息”】)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

XShell、XFtp的安装与使用

XShell和XFT下载地址

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

XShell使用(连接XFtp和连接XShell一样):
新建一个会话

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

点击你新建的回话,弹出让你输入用户名(一般默认用户名为root)

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

点击确认后就会让你输入a % n w r密码(可以在阿里云官网D d I P重置修改)

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

这样你就连接上服务器了。

Linux添加用户(可以根据不用用户给不同权限)

  1. 登录root账号后
    输入:useradd -d /usr/zB X l K d [xy -m zxy2019
    -d 是给新用户创建主目录
    -m 是用户名

  2. 修改新用户的密码(修改前我们先进到新用户的主目录)
    输入:cd /usr/zxy/
    输入:pas( = . * r Hswd zxy2019
    输入:你的新密码
    输入:确认新密码

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  3. 给予权限
    输入: sudD v i 2 I [ 1o vim /etc/sudoers

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    输入:/root (可以快速定位root 位子,然后再添加自己新用户的权限,相匹配的会出现高亮)
    输入::noh(取消高亮)
    输入:i (即可写了)
    输入::wq! (强制保存)

JDK的安装与配置

这里需要注意下:

我们平常linux= T k Y L ? 下载jdk都会 wget http://xxxxxx 这种方式,现在由于oracle限制了,每次下载的安装包都是没用的,解压失败问题(既然下载不了,那我们就本地下@ P g +载上传上去)
所以我们使用XShell和XFT来进行云服务器的控制和文件的传输(非商业用途的免费使用)

  1. 检查是否安装
    输入:rpm -qa| grep jdk(什么信息都没- | 5返回就说明没安装)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  2. 下载:java下载地址

  3. 下载对应版本的包(后_ j R c l A缀为:.tar.gz)
    sudo mkdir java(一般会再根目录下新建一个文件夹)

  4. 上传到服务器(直接拖进去就行)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  5. 解压tar -zxvf jdkL k 8 N U-8u1R Z ? V t T )81-linux-x64.tar.gz(没任何提示就说明成功了,或者你也可以打开XFT查看)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  6. 配置环境变量( 3 4 I(配置之前,建议先给系统来个快照。不然你profile文件修改错误后你会头大各种指令失效)
    输入:vim /etc/profile(打开profile文件夹)
    输入:i(插入命令)
    输入:

export JAVA_HOME=/java/jdk1.8.0_231
export JRi y W / J D R ?E_HOME=/java/jdk1.8.0_231/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/libt A u F D:$CLASSPATH
eB h I ! l 8xport PAT5 ) { [ UH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

(输入完成后,% } e : F t 按下esc键退出输入)
输入::wq! (强制保存)
输入:source /etc/profile(使环境变量生效 )
输入:java –version命令和javac(检测是否配置O u ( ` I s成功)
使用javac命令,不会出现command not found错误
使用java -version,出现版本; T v ; 1 8 k W `为java version "1.8.0_231"

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

安装tomcat及配置环境

1.下载:Tomcat下载地址(这里我们还是和java一样去官网下载)

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  1. 上传到服务器(直v g Z O b接拖进去就行)
  2. 解压tar -# x m ! [ B H nzxvf apache-tomcat-9.0.29.tar.gz
  3. 重命名:mv apache-tomcat-9.0.29 tomcat9 (为方便记忆以及日后的使用,也可以不从命名)
  4. 配置字符集vim9 u Q ` Q a d i T confQ ) { W 2/server.xml(把端口改成80,或者其他你想要的端口)
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    6.在tomcat/bin 目录下输入:./startup.s( v y ~ M bh(启动tomcat)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    6-1 在本N ~ s / p地测试下是否开启成功
    输入:curl localhost:80 出现html网页源码就说明启动成功。

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  1. 在浏览器输入公b 7 # ` 6 x ;网ip:端口号 就可以看到tomcat的网址,证明配置成功(然而你可能还是访问不h c ] . v e # y /到看上去都很简单,但是自己一操作就各种问题。跑题. @ k了,咱们继续...)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  2. 确认你安全组里面允许了该端口(这里你允许了可能还是没用)
  3. 再次去设置tomcat vim conf/server.xml
    1.找到Engine标签defaultHost属性把值:localhos6 _ 5 K n {t改成你自己的公网ip。(有# T g两处)
    2.再找到Host标签的? ^ fname属性也是一样。改成自己的公网ip
    3.然后wq!保存
    不出意外的话,你现在就可以愉快的访问到了!
  4. 如果你还是访问不了,那你可以看% h D 9看防火墙了。
    1.首先我们看看防火墙是否开启。输入fiU i j : % # wrewall-cmd --sk B [ R t U , , 8tate 返回running说明开启了(如果没开启输入systemctl start firewalld 去开启)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

2.查看防火r M s墙是否开启80端口(这里的80改成你tomcat设置s j C 3 { v的端口)
输入firewallA B t ) P & )-cmd --permanent --zone=public --list-ports(如果返回里面看不到你tomcat的端口,说明没有开启。那么需要输入firewall-cmd --zone=public --add-port=80/tcp --permanent 去开启,里面的80端口改成你tomcat的端口)

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

3.重启防火墙并查看8080端口是否开成功输入:firewall-cmd --rea 5 r | / y g t Xload,重启后通过方法2查看全部开启的端口,也可以输入firp D ! c e gewall-cmd --zone=public --q7 : n w J x E . 6uery-port=80/tcp 单独的这个端口

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

这次不出意外,你真的可以访问了。

MySQL安装部署

上面已经用过官网下载软件上传解压安装的方式了,这次咱们换一种安装方式;使用的是yum来安装。

  1. 检查下是否安装过rpm -qa | grep mysql(还是像往常一样,没有任何提示就是没有安装;centos7中默认安装了数据库MariaK U oDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,所以咱们就不管这个了。)
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    PS:如果安装了, 普通删除模式 rpm -e mysql

  2. 安装MySQL官方的Yum Repositorywget -i -c http://dev.mysql.com/get/mysql57w ! 0 1 J Q ) n x-community-release-el7-10.noarch.rpm
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  3. 下载rpm包yum -y install mysql57-com6 r . ] P Amunity^ w f O u q c t =-release-el7-10.noarch.rpm
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  4. 安装MySQL服务yum -y install mysql-communX 9 + ] l } O 3 Pity-server
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  5. 启动MySQL服务syst+ K |emctl start mysqld.service(以Starting MySqL server.. started MysqlServer..结尾的就成功启动了【注意:是mysqld】)
  6. 如果启动后没有任何信息,咱们就在查询下看看是否启动成功4 ` @ (sysG p + 8temctl status mysqK ? &ld.s~ ~ 8 Z R k )ervice(当然一般不提示就是成功了,Linux系统就是这样。你懂的)
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  7. 设置 mysql 开机自启sys- j , ? l Xtemctl enable mysqldY g k - } l 6 m d(每次重启服务器MySQL都会关闭的,所以设I N l n 1 2 8置这个还是可以省去很多事的)
  8. 刷新配置systemctl daemon-reload(让它生效)
  9. 设置mo v $ e 1 u Eysql密码
    ①第一次启动MySQL后,就会有临时密码,这个默认的初始密码在/var/log/mysqld.log文件中,所以我们先把初始密码找出来:grep 'temporary paM v S X kssword' /var/log/mysqld.log

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

②登录:T l q 9 3 I k %mysql -uroot -pysAE6D%C-HM4(u后面是用户名(一般为root),p后面紧接着密码| 7 O 3

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

③修改密码:alter user root@localhost identified by '你要修改成的密码';(不出意外,会提示你一个错误)

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

他会告诉你:您的密码不符合当前的策略要求。
啥要m u C d - m ) - ;求呢?
PS:mysql5.7以上默认安装了密码安全检查插件(validate_passw) _ = 1 Q p r Z Cord),默认密码检查策略要求密码必须包含:大小写字母、数2 : R = b d f o 5字和特殊符号,并且长度不能少于8位。否则E 7 s ^ ] ! X会提示ERROR 1D J W % ` C H819 (HY000): Youo e % 9 4r password does not sa~ 4 Q Xtisfy thy d 5e current policy requirements错误。
想看密码策略的可以输入:show variables like '%pa` B p 5 R ! %ssword%';自行去查看

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

想修改策略的自行百度(有三种策略)。
你也可以省事的直接去除他这种策略 validate_password = off然后使其生效sy: c Istemctl restart mysqld
下图是修改成功后的图:F # S V y 4

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  1. 删除(因为安装了Yum RQ % 5 jepository,采用Yum管理各种rpm包的依赖,以后每次操作yum都会自动更新,所以a v 3 } 0需要卸载它)
    ①查看安装的mysql版本rpm -aq | grep -i mysql(记得先退出MySQL 退出命令:\q)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    ②删除yum -y removA x F ^ X & j %e mysql57-community-release-el) D d | 2 Y7-10.noarch

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  2. 配置远程登录:(4 U 7 v yMySQL默` N } $ ( S认roo` + , K e 3 3t用户只能本地登录,如果要远程v c #连接,要简单设置下)
    ①首先登录数据库(上面有登录的命令)
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '当前用户的密码' WITH GRANT OPTION;.的意思是所有库的所有表;To后面跟的是用户名;@后面跟的是ip地址,%代表所有ip地址,identified by后面的是密码。)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    ③冲刷权限flush privileges;

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    补充点:(我这里没用到就没设置,了解下就行)
    需要注意MySQL的配置文件中的bindaddress 的参数和skip-8 . 0 - + - * P vnetworking 配置
    bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为1278 ` y x u z.0.0.1以外的值D x 5
    skip-networking : 如果设置了该参数项,将导致所有TCP/S d w ; 9 & C cIP端口没有被监听,也就是说除了本机,其他客户端都无法用网络连q e O接到本mysql服务器,所以应该注释掉该参数。

  3. 添加3306端口firewall-cmd --zone=public --aj k K m {dd-port=3306/tcp --permanent;(可能这个时候C d K i }你防火墙还没开启。命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端m y X E 0 g A口/通讯协议 --permaM [ D 9 T z pnent #永久生效,没有此参数重启后失效 )` / ( m G w
  4. 开启防火墙systemctl start firewalld
  5. 再重新添加3306端口(使用上面添加2r I g206端口命令命令)
  6. 重启防火墙firewall-z 4 H s p @ Lcmd --reload
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  7. MySQL设置utf8(进入ect目录下r & F g |)vim my.cnf
    添加:chX 0 Garacter_set_server=utf8init_connect='SET N] c p w k ) pAMES utf8'

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    PS:采w | ( ;用navicat新建数据库时,需要将编码方式设置为,字符集:utf8 -- UTF$ w N M & x m R-8 Unicode ,排序规则:utf8h . G 8 g_generw m R g ? -al_ci

  8. 再去检查下阿里云安全组端口是否允许了3306端口。没有的话开启就OK了(和上面tomcat允许安全组一样X ~ ^ 9 0 F m N

本地开发工具下载环境配置及远程部署项目

Maven 下载安装与配置

  1. Maven官网下载地址(Ma& T A h } ven3.2.版本需要JDK1.6的支持,M0 M 1aven3.3.以上需要JDK1.7以上的支持)
  2. 下载最新版本

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  3. 解压

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  4. 配置Maven环境变量(和配java环境一样)
    1.新建环境变量MAVEN_HOME和M2_HOME,分别填上你解压后的路径(我这里的路径:C:\zxy\maven\apache-maven-3.6.3)
    2.编辑环境变量Path,追加%MAVEN_HOME%\bin. + %;

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  5. 检查是否安装及配置成功
    cmd进入DOS命令输入:mvn -v{ q x *

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  6. 修改maven配置文件(settings.xml文件【在cob g `nf目录下】)
    主要修改:
    1、本地仓库位置
    <localRepository>C:\Users\59908\.m2\repository</localRb r % J L depository>(C:\Users\59908.m2\repository:可以自行修改位子,随便创建一个文件夹做本地仓库)
    2、修 y K t ( , , V改maven默认的JDK版本(修改成你本机的版本)
<profile&C $ u s Pgt;
<id>JDK-1.8</id>
<activation>
<activeBy( Z ; y - ) 9 u rDefault>true</activeByDefault! q 9 2 K Y>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compileJ ~  ^r.source>1.8</maven.compiler.soui 5 . S 9 . Urce>
<maven.compiler.target>1.8</maven.compilc @ ]er.target>
<maven.Q / # Pcompiler.compilerVersion>1.8</maven.compiler.y + w R ZcompilerVersion&5 L /gt;
</properties>
</profile>
&z 2 T $ w q ( %lt;/profiles>

3、添加国内镜像源

   <!-- 阿里云仓库 --&g# e ;t;
<mirror>
<id>= g , , h * t X ?;alimaven</id>
<mirrorOf>ced 4 T - B a [ 5 /ntrC [ Fal</mirrorOf>
<nam1 1 7e>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repov u - i R  + Nsitories/ce/ S K q ] : D $ !ntral/</url>
</mirQ p P Z ? Sror>H m m = j
</mir6 * o Z I Jrors>

4、完整的Settings.xml文件(如果上面不会加的话就复制完整的文件去里面修改好了)

<l C _;?xml version="1.0" encoding="UTF-8"?>
&+ B Y 9lt;!--
Licensed to the Apache Software Foundation (ASF)- v ; p x under one
or more contributor liceng g H R * {se agreementsm h $ ) 0 L p Z A.  Se$ K X d ; Ye the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliancu = $ ce
with the License.  You may obtain a copy of the License at
htp 1 E dtp://www.apache.org/licenses/LICENSE-2.0
U| | h hnless requireB # ed by apx , 2 [ U vplicable law or agreed to in writing,
software distributed undeU P ) m 8 $r the License is distributed on an
"AS IS" BASIS, WITHO2 ? 4  ~ @ } - 2UT WARRANTIES OR CONDITIONS OF ANY
KIND, ei; ; $ l U l I ither express or implied.  See the License for tt j uhe
specific language governing permissions and limitations
under the License.
-->
<!--
| This is the configuration file for Maven. It can be specified at two levels:
|
|  1. User Level. This settings) 8 n x ` #.xml file provides configuration for a single user,
|                 an8 b | - ; sd is normally provided i2 8 f P v W V vn ${user.home}/.m2/settings.xml.
|
|                 NOTE: This location can be overridden with the CLI option:
|
|                 -s /path/to/user/settingu j 8 . y ! #s.xml
|
|  2. Global Level. This settings.xml file provides c^ h } s 5 J # r .onfigurF ) D v D [ 1 u Wation for all Maven
|                 users on a mac2 5 } d ~hine (assuming they're all using the same Maven0 p m / Q 5 9 z
|                 installation). It's normally provided in
|                 ${maven.conf}/setK f U rtings.xml.
|
|1 j !  & O                 NOTE: This location can be overridden with the C] G e h ILI option:
|
|                 -gs /path/to/gloB g 5 s ~bal/settings.xml
|
| The sections in this sample file are intended to give you a running start at
| getting the most out of your Maven installat^ ` L Sion. Where appropriate, the default
| values (valueF M 0 ;s used when the setting is not specified6 @ + !) are provided.
|
|-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.orZ g P 6g/2J ( [ C L001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.( H K d 9 Y w vorg. 3 @ E &/SETTINGS/1.0.0 http:E a O v a z 3  g//maven.apache.org/xsd/settingb ] ` ? E [ Js-1.0.0.xU p 4 h & + 0s# Z } 0 3 7 rd">) f ;;
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.hoS P ? A Vme}/.m2/repository
<localRepository>/path/to/local/repo</localRepository&8 $ B a ] | _gt;
-->
<localRepository>C:\Users\59908\.m2\repository</localRepository>
<!-- interactiw / m 0 [ 1 b C FveMode
| This wi- v @ e ] 6ll determine whether maven prompts you whenX X T it needs input. If set to false,
| maven will use a sensible default value, perhaps based on some other setting, for
| the parama 9 O `eter in question.
|
| Default: true
<interactiveMode>true? q `</interacR w ,  O y etiveMode>
-->
<!-- offline
| Determines whether maven should attempt to connect to the network when exec7 a b Q luting a build.
| This will have an effect on artifact downloads, artifact d0 O D ?eployment, and others.
|
| Default: false
<offline>false</offline&gu  _ Qt;
-->
&lp Y _ J 0 Ft;!-- pluginGroups
| This iB  p r V 8s a list of additional group identifiers that will be searched when resolvP Z I V ~ @ing plugins by their prefix, i.e.
| when invoking a command line like "mvn prefix:goal` J r 8 - M , _ M". Maven will automatican ` l Rlly& r U m V l @ a add the group identifiers
| "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not aF ) 9 } A C Dlready contained in the list.
|-->
<pluginGroups>
<!-- pluginGroup
| Spec: 5 c t Xifies a further group identifier to use for plugin lo@ [ 1 H Y 5 p $okup.
<pluginGroup>com.your~ { ? A V 3 u.plugins</pluginGroup>
-->
</pluginGrou- 3 S [ M o gpsI G # z i L 6 z f>
<. . r P 7  N;!-- proxt & ; M * h l d qies
| This is a list of proxies which can be used on this ma5 : ichine to connect to the network.
| Unless otherwise specified (by system property or command-line swi, V vtch), the first proxy
| specification in this liI Y - O Dst marke! i l _ hd as active will be used.
|-->
<proxieA B ks>
<!-- proxy
| Spec= ` * r s O  ~ }ification for one proxy, to be used in connecting to^ 6 k te x M # L ;he network.
|
<prox2 u ? g k / Yy>
<id>optional</id>
<active>true</active>
<o ? Q ! e p x;protocol>http</protocol>
<username>proxyuser</username>
<passwoY t !rS ~ K # ( & Dd>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>| ^ | d p o I [;
<nonProxyHosts>local.net|soE w [ t U } / r [me.host.com</nonProxyHosts>
</proxy>
-->
</proxies>
<!-- servers
| This is a list of authentication profiles, keyed by the server-@ N 6 C W nid useA 3 0 M w + l ~ 6d w8 Q $ithin thz O Ye system.
| Authentication profiles can be used whenever maven must( { i  J l make a connection to a remote server.
|-->
<servers>
<!-- server
| Specifies the; 3 9 authentication information to use when connecting to a particular server, identified by
| a unique name wit$ )  khin the system (refer) Y n ? S v s b *red to by the 'id' attribute below).
|
| NOTE: You should either specify username/pasx % / a _sword OR privateKey/passphrase, since these pairings are
|       used togeth I ; a G x & l Ter.
|
<server>
<id>deploymentRepo</id>
<username>repou/  u F Xser</username>
<password>repopwd</password>
</server. w Z v M J>
-->
<!r d * V + W d-- Another sample, using keyL h ` Bs to authenticate.
<server>
<id>siteServer</d A ?id>
<privateKey>/path/to/private/key</privateKey>
<passphrase>optional;D ` } 1 leave 9 U J empty if noH - V : S & N  ?t usedi N ! r 7 F L .</passph? e N / c 5 : y *rase>
</serZ j bver>
-->
</servers>
<!-- mirrors
| This is a list of mia ) ( O u l :rrors to be usedb f X . M in downloading artifacts from remote repositov e g P o @ B , 5ries.
|
| It works likp b 4e this: a POM may declare a repository to use inl  9 V . 1 resolving certain artifacts.
| However, this repository m0 a I !ay have prU | i r z Z Xoblems with heavy traffic at times, so people have mirrored
| it to several places.
|
| Thak 0 mt repository definition will have a unique id, so we can create a mirror reference for that
| repository, to b5 4 [ $ H o i z 2e used as an alternateb p = U do% P ` ) rwnload site. The mirror site will be the preferred
| serv N . ; ? -  B vver fo` ~ l 7 T 0 , ;r that repm b 5 ~ | ) Wository.
|-->
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serveS { s has an ID that matches the m; M VirrorOf element6 L $ A of this mirror. IDs are used
| for inheritance and direct lookup purposes,= s j ^ ^ X 9 ] + and must bU + 0 & U E iec C h K n v ^ G unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryp N 8Id</mt + *irrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</urlK ( n q W Z>
</mirror>
-->
<!-- 阿里云仓库 -->
<mirror>` G m Q { 5 { =
<id>a_ p 2limaven</id>
<mirrorOf _ 1 @ . * A %f>central</mirrorOf>
<name>alin G 3 @ u z L |yun maven</name>
<url>http://maven.aliyun.com/nexus/co2 B ? ;ntent/repositories/central/</url>4 k - k D R
</mirror>
&l t  & 8 U  w Llt;/mirP H  R C 2 ) @ rrors>
<!-- profiles
| This is a list of profiles which can be activated in a variety of ways, and which can modif? - ~ [ ^ i ~ |y
| the build process. Profiles provided in the settinZ b z 8  # ygs.xml are intended to provide local machine-
| spec{ = t 9ific paths and repository locations which allow the build to work in the local env+ ? $ S a v Xironment.
|
| For example, if you have an integration testing plR m E % Vuginw | l - like cactus - tha4 T r Yt needs to know where
| your Tomcat instan7 # q $ce is installed, you can provide a variable hereR Z k b such that the variable is
| dereference1 ! I d M ~ ~ Ud duringz . # E 3 the bU K / y g fuild processd K ~ | b 2 to configure the cactus plugin.
|
| As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
| section of ts A k _ @his document (settings.xml) - will be discussed lateo # v !r. Another way essentially
| relies on the dJ  @ *etection of a system property, either matc? , k c M %hing a particular value fo9 [ ( l n H 9 e #r the property,
| or merely testing its exif i 6 e Kstence. Profiles can also9 ? ` y X d be activated by JDK version prefix, w 6 X s R 6 Khere a
| value of '1.4^  !' might activate a profile when the build is executed on a8 s d } R JDK version of '1.4.2_07 @ S P'.
| Finall` v ] c % ~ ty, the list of actf j [ive profiles cm b C e R Y x 5an be specified directly from the command line.
|
| NOTE: For profilesN u h defined in the settings.xml, you are restricted to specify) / | ^ K wing oq = wnlf o B | F D Ey artifact
|       repositories, plugin repositories, and free-form properties to be used as configuration
|       variables for plugins in the POM.
|
|-->
<profiles>
<!-- profile
| Specifies a set of introductions to the build process, to be activated using one oI H c Mr more of the
| mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProf? N x $ v N R F ailes/>
| or the command line, profiles have to have an ID that isH ^ g unique.
|
| An encouraged best practice for profile identification is to use a consistent n x r Laming convention
| for pD Z = g , lrofiles, such as 'env-dev{ u H | 1 6 q n .', 'ew  ^ e | D T K Jnv-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
| This will make it more intuitive to understand what t: i 8 8 _ U #he set of introduced profiler 1 7 [ v Gs is attempting
| to accomplis1 o q r 9 ` Z Jh, par= 7 - nticu{ U m a T larly when^ , e o f o j N you only have a list of profile id's for debug.
|
| This profile exa( a E  + 7 5 ^ 8mple uses the JV 7 d oDK version to trigger activation, and provideZ q 1 h s 8s a JDK-specific repo.
<profile>
<id>jdk-1.4</id>
<activation>
<jdk>1.4</jdk>
<d h O & Y / T/activation>
<repositories>
<reposw 7 ( 0 e R C I Vitory>
<id>jdk14</id>
<| r 7;name>Repository for JDK 1.4 builds</name>T x h  9
<url>http://www.myhost.com| X q H E/maven/j q ] ~  z i f Ldk14</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
</repog R 2sitory>
</repositories>
</profile>
-->
<!--
| Here is another profile, activated by the system property 'target-env' with a value of 'dev',
| which provides a specific path to the TG 0 1 # b 5 Tomcat instance. To use this, your plugin configuration
| might hypothetically look like:
|
| ...
| <plugin>
|_ ~ = H n   <groupId>org.myco. | x ~ x , I Smyplugins</groupId>
|   <artifactId>myplugin</artifactId>
|
|   <6 ^ w w N M;confb F s { } % q $ 8iguration>
|     <tomcatLocation>${tomcatPath}</tomcatLocation>
|   </configuration>
| <k = / ^ m;/plugin>
| ...
|
| NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
|       anytb t [ r [ = lhing, you could just leave off the <value/> inside the activation-property.
|
<profile>
<id>env-dev</id>
<activation>
<property>
<name>target-env</P u u  [ k 8 D Cname>
<value>dev</value& 8 g Z ) % g vgt;
</property>
</activation>
<properties>
<tomcatPath>/path/to/tomcat/instance&o r e L i / J 8lt;/tomcatPath>
&@  ; Y 1 / $ J 3lt;/properties>
</profile>
-->
<profile>
&W Q % | -lt;id>JDK-1.8</id>
&? - $  Y / R 1lt;activation>
<activeByDM 9 5 8 + Cefault>true<= 4 R/activeByDefault>
<jdk>1.8</jdk>
</actQ e h q oivation>
<properl / 5 ities&} n O ( &gt;
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.coX ) . k W P impilerVersion>1$ b v a r 6 i &.8</maven.compiler.compilerVersion&g] c 4 h & 2 6 p tt;
</propr { m % i # merties>. v i w * M ] 4 o;
&- P ~ e ( Y / @ &lt;/profile>
<a N f 4 y W ^ z ;/profiles>
&lS ) yt;!-- activeProfiles
| List of profiles that are active for all buz , C M V 8ildd 2 8 T Cs.
|
<activeProfiles>
&l5 } st;actiJ / & . K ^ , 5 wveProfV W uile>alwaysAU k / { ? EctiveProfile&l` % ) H  8t;/activeProfile>
<activeProfile>anotherAlwaysAz 6 | R ( . ` q (ctiveProfile</activeProfile>
<Y Q h v , [/activeProfiles>P H ~ y
-->
</settings>
  1. IDEA配置maven
    目前常- b , A ] ? V用的开发工= l z ; c H O具如idea,eclipse都自身集成了一个版本的Maven。但是通常我们使用自己已经配置好的Maven

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    最后记得勾选此处,当修改pom文件时,Maven就能帮我们自动导包了。

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

IntelliJ IDEA远程部署项目至阿里云服务器

Cloud Toolkit插件

阿里云提供了基于 Intellij IDEA 的插件,以方便开发人员能够高效的将本地 IDE 中编写的应用程序,极速部署到服务器中去。
Cloud Toolkit官方地址

  1. 我们这边直接在idea中下载File>>Setting>>Plugins

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    下载完后,重启Idea编辑器即可。

  2. 配置Cloud Toolkit插件中的Accout信息(这一步很重要)
    这个Accout信息在阿里云d z O y w D D Y的控制台中配置(如果是新用户,需要手动创建一个Ap f k b ] / . * #ccessKey)将鼠标放在右上角头像上,既可以看到AccessKey管理。

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    官方配置文档
    我这里省事就不用子用户了。

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

创建完后你就可以获取到一个AccessKey ID与Access Key Secret

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  1. 账号准备好了,那我W V 9 : O W ; 2们就去配置吧(Tools>>Alibaba Cloud>>Prefere T t 2 # d H ances...)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)
  2. 配置服务器与本地关联(右击项目>>AlibabaCloud>>Deploy to ESC)
    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

    Comman! V E E , N A +d官方文档
    1.创建restart-tomcat.sh文件,想创建在哪个目录就在哪个下执行vi restart-tomcat.sh (后面在Command地方记得改到这个h R % W * o [ ^文件目录下就行)
    2.然后按i 进入输入模式。复制下面的指令(LuckyJW这个换成你项目名称就行。F T 8 b/tomcat/tomcat9这个就是你tomc? y _ u { #at的路径)

source /etc/profile
# (务必根据实际情况自行添加指令执行,如:jps   -ml. |grep  你要杀死的包名  |xargs. kill)
killall java
rm -rf /tomcat/tomcat9/u ? n h P [webapps/LuckyJE i 3 0W
sh /p h 7 G J  8 k =tomcat/tomcaC f I c z e Bt9/bin/startup.sh

3.按esc键 输入1 + A 5wq! 回车
4.给restart-tomcat.sh文件赋# Y Z _ 6 Z A予权限 执行命令:chmod +x restart-tomcat.sh 回车
5.在/etc/profile这个文件上添加

# Get the aliases and functions
if [ -f ~/.bashrc ];2 [ { L 2 then
. ~/.bashrc
fi
# 这里换成自己jdk的目录(我之前已经设置过了,c A { Q 6这个一般都已经设置过的了。)
#javat  W D M h A r 4 1.8
export JA* & !VA_HOME=/java/jdk1.8.0_231
export JRE_HOME=/java/jdk1.8.0_231/jre
export CLASSPATH=.:$JAVA_HOME/U C / alib:$JRE_HOME/lib:$` n m + P H ZCLASSPATH
e` a ! ) L w e fxport PATHB ) 6 ; Z } m h Y=$JAVA_H? ; # | -OME/bin:$JRE_HOME/bin/. ) n j [$JAVAY E 8 s , & b c 6_HOME:$PAT! ^ D E { ; (H
阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

6H , Y.最后Apply>>Ruu X ] ( * h E un

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

7.最后运行程序等待部署

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

运行成功后会出现下图

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

你也可以用浏览器测试下

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

补充下:linux下使用shutdown.sh 关闭时[ w 0 2 C 2 p 8可能会出现SEVERE:t w ( F v g Could not contact [localhost:8005] (base port [8005l : g] and offset [0])错误。(这个问题是因为在tomcB ) b . F `at没完全启动前就关闭tomcat)

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

解决:进入你jdk目录(/java/jdk1.8.0_231/jre/lib/security)找到ja2 * . Ava.security文件。
使用命令vim java.security进行编辑
/securerando* j _ 3m 进行搜索并高亮
最后将

securerandom.source=fily 9 j ; . % K ye:/dev/random
改为:
securerandom.source=file:/dev/urandom
阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

这样就h K 3 / 7 R可解决这个问题。这样修改是提升为启动toK [ $ f $ e L Cmcat的运行速度。
现在你的项8 m P l _目是不是已经快乐的运行起来了?


  • 下面是扯犊子的屁话。可以} , 4 L q } + = H忽略(我也是第一次自学后台,所以才会有这么多问题,这么多感慨)
    不不不,你可能还会像我一样遇到一些头疼的问题(对于新手,第一次玩后台一定会遇到各种奇怪的问题)。
    比如:本地运行完美,可已部署到服务器,mysql就连接不上了。
    再比如:本地运行完+ 7 5 ^ b B美,可已部署到服务器,就给你报静态类加载失败。
    等等,等等...
    这些问题你能发现那还算好的。毕竟发现问题就可以解决问题。
    但是对于很多新手来说,本地问题可以看idea上的log日志。可是云服务器上的日志在哪呢?怎么看呢?(网上很多东西,对于用过的人来说,人家一看就懂,但是对于萌新来说,真的不一定懂。b { H ] 7 D Q -
    我当z _ 0 @ Q时按他们步骤操作,就是不行。最后冷Y G Q / ]静下来分析,问题出在哪里8 o P 0 8 [ H ]。对,遇到问题一/ y P ! g v定要自己理解,自. @ [ n ? a +己分析。3 ] B很多东西别人觉得很简单,随便几个命令就可以了。但是这命令里面什么意思你懂吗?这命令里面那些地方需要换成自己本地的路径你懂吗?你都不知道。所以你就会出现,照着大神的命令敲,还是解决不了问题。
    好了,自我吐槽就到这里了。
  • 吐槽结束.............

如何查看云服务上的日志

方法1:(推荐用方法2)
使用Xftp工具,或者命令进入到你tomcat目录下的logs目录p S : ~ %。里面就有记录你服务器的错误日志,然后根据你L i u当时访问服务器的时间,找到对应时间的日志,然后导出来查看 N e V A,分析。

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

看上去很简单吧。但是你第一次接触后端。你可能和C ? 1 A n我一样还真不知道在哪里看。
方法1有些麻烦,对于开发来说,懒那都是通病。因为懒,才能创新出更多帮助你偷懒的工具。
方法2:实时查看服务器日志。
n e g b 4 o P v也得感谢伟大的阿里大神们。让我们节( a z , f V g 3 g省更多的时间去打游戏,不不不,说错了,是去学习
方法2也很简单。因为我们之前已经配置了Alibaba Cloud远程部署项目了。所以我们只需要在添加一部就可以了。(如果还不会用Alibaba Cloud远程部署的可以看看上面我写的《IntelliJ IDEA远程部署项目至阿里云服务器》)
①和上面一# v L y _样:右击项W 4 + [ ( @ b目>>AlibabaClou9 ? M Ud>>P 6 I ) } 4 ;Deploy to ESC
②选择Advanced
③在Command中输入命令(命令中的/tomcat/tomcat9,换成你自己服务器tomcat的路径)
tail -f /toB Y 4mcat/h } Ltomcatp _ S w |9/logs/catalina.out -n200
④勾选Automatic open afs h P oter deploy
⑤运行 run
这样就大功告成了

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

这样就可以看到实时错误日志啦。

阿里云服务器搭建及远程自动化部署-java+tomcat+mysql+Alibaba Cloud(入门篇)

上一篇:Lint常见的问题及解决方案

下一篇:APKS # u F % u反编译工具使用教程