文章目录
一、部署环境
为了在linux上部署 Java web 程序,需要安装一下环境。
1.1、JDK
直接使用 yum 命令安装 openjdk。我们 windows系统上 下载的是 oracle 官方的 jdk。而 openjdk 是开源社区维护的开源版本,所以虽然 oracle 官方的 jdk 和开源社区的 jdk 不是同一个东西,但是他们相差不大,并且功能相互兼容。
linux 上当然可以直接安装官方提供的jdk,但是会比较麻烦。既然有简单的办法,那我们直接使用简单的方法即可。
1)、先明确你打算将 openjdk 安装在哪个目录下,就切换到哪个目录下进行安装。(但是其实jdk安装好后并不是放在这个目录下,linux上面安装软件会有专门的路径,不是我们指定目录下载,就下载到哪里的)
2)、yum list | grep jdk
3)、yum install jdk版本(或者 yum install -y jdk版本)
4)、javac 检验jdk是否安装成功
1.2、Tomcat
基于ssm框架的项目,要准备的上线环境只有jdk和数据库,tomcat可装可不装。
1)、yum list | grep tomcat
第一步是从源上获取所有软件包,然后再从这些软件包里筛选出包含 tomcat 关键字的软件包。但是由于我的云服务器使用的版本是 centos7,比较老版,所以没有tomcat8.x系列,一般新版的服务器都会有的。如果源上的软件包没有想要的tomcat版本,去tomcat官网下载压缩包,然后拖拽至云服务器即可。
怎么到tomcat官网下载tomcat压缩包,可以点击浅谈tomcat,到我这篇博课看看。
2)、unzip 压缩包名
使用 unzip 解压缩命令解压缩 tomcat 压缩包。
2)、chmod +x *.sh
该命令可将bin目录下的所有 .sh 文件变为可执行文件。
3)、sh startup.sh
在linux上启动tomcat。
4)、通过 ps 验证
验证tomcat是否启动成功
5)、也可以通过 netstat 验证tomcat是否启动成功
3)、也可以直接通过浏览器查看tomcat欢迎页面来验证tomcat在linux上启动成功
但是如果你的云服务器 防火墙(轻量服务器改防火墙)/安全组(ecs改安全组)没有开启8080端口,此时即使linux上启动tomcat成功了,也没办法在浏览器看到tomcat的欢迎页面。
开启云服务器的安全组的8080端口(我以阿里轻量服务器为示例,演示如何开启):
此时就可以访问tomcat的欢迎页面了。
1.3、MySQL
选择最简单的安装方式,使用yum命令安装 mariadb 数据库,此数据库与 mysql 数据库功能相差不大,相互兼容。
安装流程
二、将自己写的的程序部署到云服务器上
2.1、打包 Spring Boot 项⽬
使⽤ Maven 打包 Spring Boot 项⽬:
要注意:有时候我们打包时,生成的只有一个 xxx.jar 包,并没有 xxxx.jar.original 这个包,这个时候我们要警惕了,很有可能你打的这个包,部署到云服务器上时,压根运行不起来,我曾经就遇到过。因此如果同学你们在打包时,一定一定要注意打包时是否生成两个包,并且如果生成两个包,但是xxxx.jar包大小很小,这时候也要警惕,因为一个应用程序,最小的容量也是很大的,如果你打的包其大小较小,就说明这个项目运行依赖的一些依赖,压根没有被打包,这样的包部署到云服务器上时,也是运行不起来的。(xxxx.jar包是我们需要放到云服务器上执行的包)
2.2、上传 Jar 包⾄服务器
然后我们打开xshell或者一些其他的终端软件,连接好云服务器后,就可以将打好的jar包拖到xshell上进行部署了(我们拖动的这个jar包,你想将他放到哪个目录下,你就cd哪个目录就可以了,但是前提是你必须要能记住这个jar包对应的目录是哪个,我们启动项目时是要在这个目录下进行启动的):
那么将windows本地文件上传至linux已经完成了,接下来就是要启动项目了。
2.3、启动项⽬
1、第一种办法:使用这个命令(但是这个命令我是用之后老是部署不成功,所以我就不用这个命令了)
nohup java -jar xxx.jar &
2、第二种办法:
java -jar jar包名 (java -jar xxx.jar)
这个命令需要在你 存放了你想要运行的项目 的jar包所在的目录处运行,如果在别的目录/路径处执行,就会执行不成功。
到这一步项目就部署成功了,可以在网页输入url访问自己的项目了。
2.4、停⽌项⽬
- 查询出运⾏的 Spring Boot 的进程; ps aux | grep 应用程序名 或者 ps -ef|grep java
- 将 Spring Boot 的进程结束掉。 kill -9 进程ID
2.5、在打包项⽬的时候,⼀定要检查,确保你的数据库连接的是远程服务器的 MySQL,确保密码正确。
1)、云服务器数据库得含有自己项目的库、表
当我们将自己的项目部署到云服务器上时,首先需要让云服务器上的数据库中含有自己项目对应的数据库、表。因为我们项目之前建的数据库、表是在本地的,项目部署到云服务器上就需要让项目访问的是云服务器上的数据库、表。
直接将本地的数据库、表脚本拷贝到云服务器上的数据库里执行即可。
2)、微调连接数据库的代码:主要改一下数据库名、数据库密码、以及数据库端口(端口号要和云服务器上mysql占用的端口一致)
3)、要是代码变化了,需要重新打包项目进行部署。
4)、有时候项目运行在本地是能够成功的,但是运行在云服务器上不一定能够成功。