云服务器部署 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实现反向代理
Sep 20 Servers
nginx proxy_cache 缓存配置详解
Mar 31 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
Nginx反向代理学习实例教程
Oct 24 Servers
Apache Hudi的多版本清理服务彻底讲解
Mar 31 Servers
Nginx动静分离配置实现与说明
Apr 07 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
Apr 18 Servers
使用Apache Camel表达REST服务的方法
Jun 10 Servers
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
Jun 10 Servers
nginx之queue的具体使用
Jun 28 Servers
TaiShan 200服务器安装Ubuntu 18.04的图文教程
Jun 28 Servers
服务器nginx权限被拒绝解决案例
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
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PDO::getAttribute讲解
2019/01/28 PHP
jquery 选择器部分整理
2009/10/28 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
python中requests和https使用简单示例
2018/01/18 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
代码详解django中数据库设置
2019/01/28 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
建筑人员岗位职责
2013/12/25 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
最常使用的求职信
2014/05/25 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
主题班会开场白
2015/06/01 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
Java并发编程必备之Future机制
2021/06/30 Java/Android
Python采集壁纸并实现炫轮播
2022/04/30 Python