云服务器部署 Web 项目的实现步骤


Posted in Servers onJune 28, 2022

一: 搭建 Java 部署环境

之前说过 yum这个命令了,是"包管理器",可以理解为他就像是"应用商店",我们需要安装 JDK,Tomcat,还有Mysql,当然,我们下载需要用 yum install,必须使用管理员权限(root)

yum list | grep [软件包关键字] 功能:查看软件包列表
yum install [软件包名字] 功能:安装软件包(需要管理员权限)
yum remove [软件包名字] 功能:卸载软件包(需要管理员权限)

1: 安装 JDK

首先,我们先搜索一下,看看 yum 上关于 jdk 有没有,以及叫什么名字,我们可以通过 yum list命令就能列出来 相应的服务器上所有的软件包的名字(当然不要就这样敲,这样敲会把所有东西都列出来,会非常多,我们搭配 grep 来使用:yum list | grep gdk),只搜寻jdk的:

云服务器部署 Web 项目的实现步骤

这些版本都是不一样的,所以有好多,我们要认准这个标志:

云服务器部署 Web 项目的实现步骤

devel(表示开发工具包,也就是 jdk),东西最全,x86_64表示是这个软件包适用于 cpu 是64位的 x86 cpu(我们现在服务器用的cpu主要都是 x86 64位),

云服务器部署 Web 项目的实现步骤

上面有个.i686的是32位的,差别很大

我们把上面那个64位的复制下来(ctrl+insert)

yum install java-1.8.0-openjdk-devel.x86_64

云服务器部署 Web 项目的实现步骤

我安装过了,第一次记得按 y
验证是否安装成功,输入 javac查看

云服务器部署 Web 项目的实现步骤

注意此处我们安装的 jdk 是 OpenJDK ,和我们之前学 Java 用的 JDK 还不是一个,咱之前在 windows 上安装的 JDK 是 Oracle 官方的 JDK,OpenJDK 是 开源组织开发的另一个 JDK,虽然不是同一个,但是问题不大,都是用相同的 JVM Hostspot.(整体差别很小,所以没有必要去安装 Oracle JDK)

2: 安装 Tomcat

云服务器部署 Web 项目的实现步骤

我们发现yum上面虽然有 tomcat,但是版本比较老,是 7.0系列的,而我常用的是 8.5系列的,因为我们也知tomcat,JDK,Servlet,mysql这种版本都要匹配才稳定,所以我们需要进入tomcat官网进行下载:https://tomcat.apache.org/

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

可能有些拖拽不成功,因为拖拽上传依赖 rz命令,需要先 yum install lrzsz 来安装依赖命令,才能上传,rz 把 windows 上的文件 传给 Linux 服务器,sz 把 Linux 上的文件传给 Windows

然后我们需要对 这个文件解压缩:unzip [压缩文件]

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

进入 文件夹查看:

云服务器部署 Web 项目的实现步骤

接下来就是启动tomcat了:

要想启动 tomcat,需要用到startup 脚本,其中 .bat是给 windows 使用的,.sh是给 Linux 使用的…

首次启动我们需要先给所有的 .sh 文件设置 可执行权限

cd 到 bin目录下,然后执行 chmod+x *.sh(给目录中所有.sh后缀的文件都加上可执行权限),加过之后,后面就不用加了

云服务器部署 Web 项目的实现步骤

在输入:sh startup.sh启动脚本

云服务器部署 Web 项目的实现步骤

总结

1: 先在官网下载 .zip 包
2: 把 zip 传到 linux 上,直接拖进去就行,不行就yum install lrzsz命令先下载
3: 使用 unzip 命令进行解压缩,同样可能也需要先下载
4: 切换到 bin 目录给所有 .sh加上可执行权限:chmod+x *.sh
5: sh startup.sh启动 romcat
(前四步首次使用需要做的,后面就不需要了,且才相关目录里执行命令)

如何验证tomcat是否启动成功?

1: 查看 tomcat 进程:
ps aux | grep tomcat,ps命令相当于windows上的任务管理器,会打印出当前主机的所有进程,grep tomcat按照 tomcat 关键字来进行匹配

云服务器部署 Web 项目的实现步骤

2: 查看 tomcat 的端口,默认是 8080
看下端口号是否被绑定:netstat -anp | grep 8080

云服务器部署 Web 项目的实现步骤

有这个就是启动成功

如果端口号被占用了,可以自己修改:

云服务器部署 Web 项目的实现步骤

找到 conf这个目录的 server.xml
vim server.xml进入编辑
找到这俩端口,改了就行

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

3: 还可以验证一下看能否访问 tomcat 的欢迎页面
如果能访问,就启动成功 外网IP+8080(自己设的端口号)就行了

云服务器部署 Web 项目的实现步骤

可能有些人买了服务器,并没有展示出来,因为云服务器厂商,为了保护咱们的服务器不受黑客的攻击,对于哪些端口能被外部访问进行了严格的限制,绝大部分端口在默认的情况下,无法通过外网来访问的,这就需要我们去官网开启防火墙/安全组,在后台页面配置,允许哪个/哪些端口可以对外访问,一定要保证 服务器是可访问的才能访问

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

再把这个加上就行了:

云服务器部署 Web 项目的实现步骤

3: 安装 MySQL

我们自己的电脑和Linux 服务器是两台机器,因此,想要让程序在服务器上运行,我们就要给服务器装上 MySQL,这里我参考了以下安装教程:https://www.3water.com/article/112008.htm

这里我们安装的 MySQL 孪生兄弟,MariaDB,这俩的API 都是兼容的,效果一样.同时安装他都是要以 root 用户进行操作的.
具体步骤:

(1): 依次安装

安装 mariadb 服务:yum install -y mariadb-server
安装 mariadb 命令行客户端 :yum install -y mariadb
安装 mariadb C library:yum install -y mariadb-libs
安装 mariadb 开发包:yum install -y mariadb-devel

(2): 更改配置

通过 vim按下 i 进入插入模式更改以下配置,要细心操作,最后按下 esc 在按下 :wq 保存退出

更改: /etc/my.cnf.d/client.cnf 文件
[client] 下加一行配置 default-character-set=utf8

vim /etc/my.cnf.d/client.cnf

效果:

云服务器部署 Web 项目的实现步骤

更改 /etc/my.cnf.d/mysql-clients.cnf 文件
[mysql] 下加一行配置 default-character-set=utf8

vim /etc/my.cnf.d/mysql-clients.cnf

效果:

云服务器部署 Web 项目的实现步骤

更改 /etc/my.cnf.d/server.cnf 配置

[mysqld] 下加配置

collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
sql-mode = TRADITIONAL
vim /etc/my.cnf.d/server.cnf

效果:

云服务器部署 Web 项目的实现步骤

(3): 启动

启动服务: systemctl start mariadb
设置服务开启自启动:systemctl enable mariadb
查看服务状态:systemctl status mariadb
注意到 Active 状态为 active (running)

云服务器部署 Web 项目的实现步骤

(4): 测试连接

使用命令行客户端尝试连接:mysql -uroot

云服务器部署 Web 项目的实现步骤

查看 mariadb 版本号:select version();

云服务器部署 Web 项目的实现步骤

查看字符集配置:show variables like '%char%';

云服务器部署 Web 项目的实现步骤

好了,到这里就大功告成了
注意:我这里是没有设置密码直接登录的,因为我的数据库啥值钱的都没有,也不怕别人折腾,就懒得设了

二: 部署 web 项目

1: 给服务器准备好依赖的数据

之前的数据库跟这里的数据库是没关系的,我们需要把之前的数据给复制过来

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

成功导入!!

2: 微调我们的 Java 代码

之前我们在写 java 代码的时候,访问数据库有一个密码,而这里云服务器上的数据库的密码是不一样的,我们云服务器上根本就没有设置密码,是空字符串

云服务器部署 Web 项目的实现步骤

3: 重新打包

这里要用我们原始的打包过程,需要基于 maven 的 package 操作来生成 war 包!首先就是先在pom.xml里面设置成war包,名字就设置为 blogSystem

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

然后再左侧的target目录下有生成的 war 包

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

4: 上传到服务器上

一个字: 拖!把刚刚的 war 包拖到我们云服务器的 webapps目录下,tomcat如果在运行中,就会自动对 war 进行解压缩

云服务器部署 Web 项目的实现步骤

5: 验证

进行登录查看是否成功:博客系统(用户名:lisi 密码:123)

云服务器部署 Web 项目的实现步骤

云服务器部署 Web 项目的实现步骤

到这里,web项目就部署完成了!!!(由于背景图有点大,可能加载有点慢,这是正常现象)
我们在遇到问题的时候不要害怕一是我们可以通过抓包来查看问题原因,还有就是要习惯于看 logs 日志文件寻找问题,出错了就找最新的文件日期,最好全都看…

云服务器部署 Web 项目的实现步骤

到此这篇关于云服务器部署 Web 项目的实现步骤的文章就介绍到这了,更多相关云服务器部署Web项目内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
Nginx配置并兼容HTTP实现代码解析
Mar 31 Servers
利用Nginx代理如何解决前端跨域问题详析
Apr 02 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 Servers
为Centos安装指定版本的Docker
Apr 01 Servers
Windows Server 2012 R2 磁盘分区教程
Apr 29 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
Apr 29 Servers
服务器间如何实现文件共享
May 20 Servers
Windows server 2012 NTP时间同步的实现
Jun 25 Servers
windows server2008 开启端口的实现方法
Jun 25 Servers
nginx静态资源的服务器配置方法
Jul 07 Servers
VMware虚拟机安装 Windows Server 2022的详细图文教程
Sep 23 Servers
在虚拟机中安装windows server 2008的图文教程
腾讯云服务器部署前后分离项目之前端部署
Jun 28 #Servers
windows系统安装配置nginx环境
Jun 28 #Servers
Python安装及建立虚拟环境的完整步骤
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
git stash(储藏)的用法总结
Jun 25 #Servers
git中cherry-pick命令的使用教程
Jun 25 #Servers
You might like
mysql总结之explain
2012/02/27 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
dojo 之基础篇
2007/03/24 Javascript
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
canvas烟花特效锦集
2018/01/17 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
伦敦一卡通:The London Pass
2018/11/30 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
工程师岗位职责
2013/11/08 职场文书
中国入世承诺
2014/04/01 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
乒乓球比赛通知
2015/04/27 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python