部署Java web项目到阿里云服务器

内容还没整理全 . . .持续更新中



前提

到阿里云官网购买服务器和域名

  • 服务器:我买的是阿里云轻量应用服务器(Linux),是学生机来的,9.5/月,需要是学生或24岁一下的才能购买。不然没有优惠哦

  • 域名:我购买的是.top类型的,便宜(3元/年)



安装putty

  1. 进👉 putty官网 下载putty.exe可执行程序
    cd4356

安装BT-Panel宝塔面板

  1. 参照宝塔Linux面板——新手安装教程
  2. 这里是Linux面板(稳定版)安装命令



安装JDK并配置环境变量

  1. 到官网中下在jdk-8u231-linux-x64.tar.gz,然后通过BT-Panel宝塔面板上传并解压到指定目录中。

  2. 使用putty远程连接工具连接到阿里云的Linux服务器主机。
    cd4356

  3. 使用用户名(root用户)和服务器远程连接密码进行登陆,注意:输入的密码是不显示的。
    cd4356

  4. 使用cd命令进入安装jdk的目录,比如安装再/usr/local/java目录中,那么进cd/usr/local/java目录
    cd4356
    cd4356

  5. 🆗,到重点咯!也就是设置java环境变量的环节。

  6. 首先输入vi /etc/profile命令,然后紧跟着在键盘上按 i 键,进入编辑模式,以便添加环境变量。
    cd4356

  7. 将光标移动到底部,然后复制java环境变量,按鼠标右键粘贴进去(当然你手写也没有问题)

    #java环境变量
    export JAVA_HOME=/usr/local/java/jdk1.8.0_231
    export JRE_HOME=/usr/local/java/jdk1.8.0_231/jre
    export CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
    

cd4356

  1. 添加了java环境变量后,按esc键退出编辑模式,然后输入:wq命令保存编辑内容
    cd4356

  2. 在我们输入:wq命令回车后,就会恢复成这样
    cd4356

  3. 接着,输入source /etc/profile命令让环境变量生效。然后输入java -version查看jdk版本。如果显示jdk版本则证明java环境变量配置成功咯
    cd4356

  4. 🆗,至此,阿里云Linux服务器配置java环境变量圆满成功!接下来我们到了tomcat配置环节!

阿里云Linux服务器配置java环境变量



安装Tomcat并开放端口后

  1. 到官网中下在apache-tomcat-9.0.29.tar.gz,然后通过宝塔面板上传并解压到指定目录中。

  2. 使用putty远程连接工具连接到阿里云的Linux服务器主机。
    cd4356

  3. 使用用户名(root用户)和服务器远程连接密码进行登陆,注意:输入的密码是不显示的。
    cd4356

  4. 使用cd命令进入tomcat安装的bin目录。使用ls命令显示bin目录下的所有指令。通过./startup.sh命令启动tomcat服务器
    cd4356

  5. 🆗,tomcat启动后,就到我们的重点咯!👉tomcat启用成功后,是不是就可以使用阿里云服务器的公网IP+8080进行访问啦?答案是否定的,启动tomcat服务器后,还需要完成两步操作:1. 在阿里云服务器中添加安全组开放8080端口 2. 开放Lunix防火墙的8080端口

  6. 在阿里云服务器中添加安全组开放8080端口
    cd356

  7. 开放Lunix防火墙的8080端口
    cd4356

  8. 🆗,现在我们就可以通过阿里云服务器公网IP+8080来访问tomcat服务器啦

  9. 防火墙相关命令(参考内容

    systemctl status firewalld 查看防火墙的状态(开启状态还是关闭状态)

    systemctl start firewalld 开启防火墙

    systemctl stop firewalld 关闭防火墙

    service firewalld restart 重启防火墙

    firewall-cmd --zone=public --list-ports 查看防火墙开放的端口

    firewall-cmd --zone=public --add-port=8001-8999/udp --permanen 指定udp的端口范围为8001-8999的可以通过防火墙,即开放范围为8001-8999的端口

    firewall-cmd --zone=public --add-port=80/udp --permanen 开放udp的80端口

    firewall-cmd --zone=public --add-port=80/tcp --permanen 开放tcp的80端口

    firewall-cmd --zone=public --add-port=3306/udp --permanen 开放udp的3306端口

    firewall-cmd --zone=public --add-port=3306/tcp --permanent 开放tcp的3306端口

    firewall-cmd --zone=public --add-port=8848/tcp --permanent 开放tcp的8848端口

    firewall-cmd --zone=public --add-port=8847/tcp --permanent 开放tcp的8847端口

    firewall-cmd --zone=public --remove-port=8080/tcp --permanent 关闭tcp的8080端口

    firewall-cmd --zone=public --remove-port=3306/tcp --permanent 关闭tcp的3306端口

    firewall-cmd --reload 刷新防火墙

    Warning: ALREADY_ENABLED: 3306:tcp 注意这不是一个命令,这是一个提示,意思是tcp的3306端口已经开放了

阿里云服务器地址端口不能公网访问的问题,及让端口通过防火墙的命令

宝塔一键修改mysql数据库存放路径,更改默认数据目录…



安装MySQL

  1. 后期继续更新. . .

云服务器安装数据库,导入数据库

远程linux服务器mysql数据库导入和导出.sql文件

宝塔一键修改mysql数据库存放路径,更改默认数据目录…

  1. 阿里云远程linux服务器的MySQL数据存储在/www/server/data/目录下。
    cd4356
  2. 首先,将本地导出的sql文件通过BT-Panel宝塔面板上传到服务器云盘的随便一个目录上(这里我上传到/home/caidong/目录下)
    cd4356
    cd4356



本地Navicat管理远程MySQL

  1. MySQL服务没有开启。
  2. 使用putty远程连接工具,进入远程MySQL。然后使用grant all privileges on *.* to 'root'@'%' identified by '远程数据库的密码' with grant option;命令开放远程MySQL的访问权限,然后使用flush privileges;命令刷新访问权限。
    cd4356
  3. 开放MySQL访问权限后,就可以使用本地Navicat来管理远程mysql咯(对了,别忘了看一下远程Linux服务器又没有开放3306端口以及Linux防火墙有没有放行3306端口)
    cd4356



购买域名并解析域名及站点备案

  1. 在阿里云购买了域名后,到控制台中查看我们购买的域名
    cd4356

  2. 进入控制台后,就可以看到我们的域名咯!
    cd4356

  3. 点击解析后就会进入该界面,然后我们点击添加记录来解析域名。
    cd4356

  4. 其中,记录类型、解析路线和TTL都使用默认值即可。
    👉主机记录填@www,那它们是什么意思呢?👉例如填了www,那我们就可以通过www.caidong4356.com来访问我们的网站。如果填的是@,那我们就则是通过caidong4356.top来访问我们的网站
    👉记录值填我们购买的阿里云服务器的公网IP
    cd4356

  5. 前面我添加了两个记录,一个主机记录填了@,另一个主机记录填了www。这样它就会给我们解析出两个域名,其中一个作为第二域名。

  6. 接下来看一下新手指导,里面有一些解释。
    cd4356
    cd4356

  7. 解析完域名之后,我们来测试一下解析的域名是否有生效。
    cd4356

  8. 对我们解析后的域名(caidong4356.top 或 www.caidong4356.top)进行检测
    cd4356

  9. 🆗,我们的域名解析已完成。当然我们还没有给站点备案噢,在没有备案之前域名好像只能用两天!

  10. 站点备案根据要求填写资料即可,不过阿里云服务器好像要购买三个月以上才能备案哦!



解决无需端口号访问Tomcat

  1. 我们在配置Tomcat的时候,需要通过阿里云服务器的公网IP+8080端口或者域名+8080端口才能访问到,但这样会显得很麻烦。

解决无需端口号访问问题

原理:

  1. 80端口是http协议的默认端口,(注意咯,http协议默认使用的端口是80端口,但它并不会占用80端口。所以不要觉得http协议的端口是80,tomcat的端口也该为80,会发生冲突! 80端口访问体现在:在浏览器中输入url,然后会根据IP(或域名)找到具体的服务器,根据端口找到具体的应用程序,但如果你没有写端口号,则会去访问http协议默认的80端口号。所以如果tomcat端口修改为80后,就会默认去访问tomcat。)所以个人觉得http协议默认的80端口可以这样理解:如果有写端口,我就去访问该端口;如果没有写端口,我就默认去访问80端口

方法1:

  1. 通过宝塔面板,到Tomcat安装目录下的conf目录下找到server.xml文件,将tomcat默认的8080端口修改成80端口。
    cd4356
    cd4356

方法1:

  1. 如果你不想通过宝塔面板修改,那么可以通过putty远程连接工具来修改。

  2. 输入root用户和服务器密码后连接上阿里云服务器。cd进tomcat安装的conf目录,使用vim server.xml命令打开server.xml文件
    cd4356

  3. 向下移动光标找到8080端口,键盘中按下i键进入编辑模式,将8080端口修改成80端口
    cd4356

  4. 修改后,按esc键退出编辑模式,然后输入:wq命令保存修改(不用管光标在哪,直接输入:wq命令即可),按回车键
    cd4536

  5. 🆗,至此,我们的80端口就修改成功咯!

  6. 重点,我在修改了tomcat的端口为80并重启tomcat后,输入公网IP却访问不了tomcat。(这里是真的香菇男瘦)

思考:

  1. (一):回去看了阿里云服务器的安全组,有填加80端口规则(即放行80端口)。所以不是阿里云服务器安全组的问题,排除掉这一可能。
    cd4356
    (二):使用systemctl status firewalld命令查看Linux防火墙状态,防火墙是启动状态。然后通过firewall-cmd --zone=public --list-ports命令查看Linux防火墙开放的所以端口,发现80端口有开放(即防火墙不拦截80端口)。所以也不是Linux防火墙拦截了80端口。所以这个可能也可排除咯
    cd4356
    (三): 使用netstat -apn|grep 80命令查看80端口的占用情况,发现80端口被一个名为httpd的进程占用了(由于我已经修改过来了,没改之前占用80端口的进程是httpd而不是java),所以我就使用kill -9 httpd进程的PID命令来杀死httpd进程(进程的PID就是进程名前面的哪个数字,比如下图中的java进程的PID是3648)。然后我就天真的认为这次应该没有问题了吧,然后通过公网IP去访问tomcat。现实是残酷的,该男瘦的时候还是得男瘦!!!,再一次使用netstat -apn|grep 80命令查看80端口的占用情况,fuck咯,怎么httpd进程又把我的80端口给占用,奔溃呀!!。
    cd4356
    这时候除了一句fuck,我都无话可说咯。好吧,还是不能放弃的,于是问了下度娘httpd是什么?原来httpd.exe是Apache的一个应用程序,好吧,我记起来了,原来在我安装宝塔面板的时候,顺便一键安装了Apache,好吧,即然是Apache把我的80端口给占了,那我就把Apache给删除掉
    cd4356
  2. 接着在浏览器输入公网IP,看到了吗,看到了没有,成功了、成功了。
    cd4356

项目发布到服务器时为什么要将端口号改为80



IDEA打包SSM项目成war并部署到服务器上

  1. 指定项目打包成war包
    cd4356

  2. 点击右侧的Maven Project打开选框,clean清楚target目录,然后package打包成war包。
    cd4356

  3. 到项目的target目录下找到打包好的war包
    cd4356

  4. 将打包好的war包上传至云服务器中tomcat的webapps目录下,并改名为o2o(o2o是我的本地项目名称)
    cd4356

  5. 🆗,这样就可以咯,现在我们就可以通过公网IP+项目名+项目路由地址(@Mapping注解指定的地址)。其中项目名可理解为项目中的应用上下文路径
    cd4356

  6. 配置图片虚拟路径,让图片可以在前端页面中正常显示。进入tomcat的conf目录下,编辑server.xml文件(也可通过putty远程连接工具进入tomcat的conf目录后,使用vim命令编辑)。
    cd4356

  7. 在server.xml文件中的标签内添加 <Context docBase="/home/shop/image/upload" path="/upload" debug="0" reloadable="true"/>,它的意思是,当访问路径中遇到/upload就会自动解析成/home/shop/image/upload,这里的/home/shop/image/upload是图片的物理路径(真实路径)
    cd4356
    cd4356



解决无需项目名访问项目问题

  1. 我们在本地访问我们的web项目的时候,一般是在浏览器中输入本地IP+8080端口+项目名+路由地址。当然我们前面说了,将Tomcat的8080端口改为80端口后,访问时就可以不用加上端口号。那么是不是也可以不用项目相关路由就可以访问到项目呢?当然可以啦,看下面看下面👇👇👇
  2. 省略. . . 我也还没搞懂 . . .

项目只输入公网IP/域名就可访问无需输入端口号和项目名的实现方法

项目发布到服务器时为什么要将端口号改为80



部署spring boot项目到阿里云服务器

1. 以前部署其它Java web项目到阿里云服务器时,直接将项目打包成war包,放到阿里云服务器中tomcat的webapps目录下。就可以咯

2. 但前几天,搞了个spring boot项目到阿里云服务器上,然后就出现了大麻烦!不管怎么尝试都访问不了项目。后来无意间才想起来,spring boot内置了tomcat,而云服务器上又安装了tomcat,起了冲突。所以我们需要排除掉spring boot的内置tomcat,在打包即可。

spring boot (2):spring boot 打包tomcat、tomcat 部署多个项目、服务器部署项目SSL 设置(阿里云)

部署Springboot项目到阿里云

部署Springboot项目到阿里云

Springboot项目部署到阿里云服务器(war和jar)

部署Springboot项目到阿里云服务器

部署springboot项目到云服务器的两种方式(jar+war)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

家师曹先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值