部署Web项目 (Linux)

news2025/1/11 7:10:14

部署Web项目 -- Linux

  • 一、Linux 环境搭建
  • 二、Linux 常用命令
  • 三、搭建 Java 部署环境
    • 3.1 JDK
    • 3.2 Tomcat
    • 3.3 MySQL
  • 四、部署 Web 项目
    • 4.1 什么是部署
    • 4.2 数据库建表
    • 4.3 构建项目并打包
    • 4.4 拷贝到 Tomcat 中
    • 4.5 验证

一、Linux 环境搭建

这里我们使用的方法是购买云服务器 (CentOS 7)。
拥有自己的云服务器后,使用终端软件连接到 云服务器 Linux。
我使用的是 Xshell ~~

二、Linux 常用命令

ls、pwd、cd、touch、cat、mkdir、rm、cp、mv、man、vim、grep、yum、ps、netstat…
使用 tab 键补全、使用 ctrl + c 重新输入…

都非常简单,这里就不再赘述了,咱们主要学习部署 Web 项目 ~~

三、搭建 Java 部署环境

3.1 JDK

安装 jdk 有很多种办法,推荐大家使用 yum 来安装。

查看一下 yum 的包管理器里都有哪些应用程序,尤其是查看下 jdk 的软件包的名字是什么:
在这里插入图片描述

这里我们选择:
在这里插入图片描述
输入 y 确认。
稍作等待即可。
如果直接输入 javac,不报错,而是提示出一些帮助选项,则认为当前是安装成功了!!!

下载安装的东西都是保存在云服务器的硬盘上!
在这里插入图片描述

3.2 Tomcat

tomcat 是运行在 java 上的;java 是跨平台的,tomcat 同样也是!

只要把之前从官网上下载好的 tomcat 拷贝到 Linux 上,解压缩后即可使用。

下载过的 tomcat 压缩包:
在这里插入图片描述

cd 到合适的目录后,光标拖拽压缩包到 Xshell 界面即可。

此时 ll 可以看到:
在这里插入图片描述

unzip 压缩包名 即可解压缩,此时 ll:
在这里插入图片描述

如何启动 tomcat 呢?
cd 到 apache-tomcat-8.5.72,cd 到 bin 目录下,
先输入指令 chmod +x *.sh ,把 .sh 后缀的文件都加上可执行权限 (绿色字体)
此时 ll:
在这里插入图片描述

startup.bat 是 windows 的启动脚本;而 startup.sh 才是 linux / mac 的启动脚本

使用 ./startup.sh 或者 sh startup.sh 来启动 tomcat !

验证 tomcat 是否在正常工作:
1)使用 ps,查看 tomcat 的进程:
在这里插入图片描述
2)使用 netstat 查看 tomcat 对应的 8080端口:
在这里插入图片描述
进程 id 与 1)中对应!
3)使用浏览器访问 tomcat 的欢迎页面:
( IP 地址 用云服务器的!)
在这里插入图片描述
注意: 为了让外界的浏览器能够访问到服务器的8080端口,就需要把8080端口从防火墙里给放开 (允许外界访问8080)!在所购买的云服务器页面中进行设置!

3.3 MySQL

同样使用 yum 安装!

可以参考这篇文章:https://zhuanlan.zhihu.com/p/49046496

yum 上的是 MariaDB,和纯正的 MySQL 还不太一样。
MariaDB 和 MySQL 的关系,类似于 CentOS 和 RedHat 的关系。
从使用角度上,MariaDB 和 MySQL 之间都是兼容的!

默认情况下是没有密码的!

四、部署 Web 项目

4.1 什么是部署

工作中涉及到的 “环境”:

  • 开发环境: 程序猿写代码用的机器
  • 测试环境: 测试人员测试程序使用的机器 (一般是退役的部署机器)
  • 生产环境 (线上环境): 最终项目发布时所使用的机器,对稳定性要求很高

把程序拷贝安装到生产环境上,这个过程称为 “部署”,也叫 “上线”。

为了防止部署出错,一般公司内部都有一些自动化部署工具 (如 Jenkins 等),当前我们先使用手工部署的方式来完成部署。

4.2 数据库建表

按照之前的数据库建表文件,在服务器上运行,建立相同的表结构。

4.3 构建项目并打包

使用 idea 的 maven 针对项目进行打包:
在这里插入图片描述

4.4 拷贝到 Tomcat 中

将 war 包拷贝到 Tomcat 的 webapps 目录中。

稍等片刻,Tomcat 会自动解压缩 war 包,完成部署。

注意: 如果该项目之前部署过,需要先删除之前的包。

4.5 验证

在浏览器上访问项目的链接 (按照项目的功能进行验证)

注意事项:
1)要开启 Tomcat 对应端口的安全组(8080)
2)代码中的数据库的地址和账号密码可能需要调整
3)还可以把项目链接生成一个二维码 (百度搜 “二维码生成”),就可以扫码访问 ~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

组合数素数判定++和* *t=*afor循环你真的门儿清吗救济金发放

目录 P63_习题4-1_组合数 为什么m n-m P64_习题4-3_素数判定 为什么要floor 到底为什么判断到sqrt(n)即可 和* *t*a for循环你真的门儿清吗 为什么要把较大的数组放在main函数外 P82_eg4-3_救济金发放_UVa133 P63_习题4-1_组合数 防止溢出&#xff0c;又因为m < n…

【JavaScript】module let Object.setPrototypeOf()以及箭头函数

案例&#xff1a;选项卡 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthde…

python 3 添加环境变量后 仍然无法用cmd输入python访问,而是弹出应用商店 | 两种解决方法

问题描述 今天重装python3.10后发现即使正确添加环境变量时&#xff0c;仍然无法用cmd输入python或python3访问&#xff0c;而是弹出应用商店。但是如果输入cmd里输入py是可以运行的&#xff08;证明python是正常安装好的&#xff09;。 这里给出两种解决方法&#xff0c;一种…

指针进阶(详解)

指针进阶一.字符指针二.指针数组1.一次打印多个字符串2.模拟二维数组三.数组指针1.定义2.应用四.函数指针五.函数指针数组六.指向函数指针数组的指针七.回调函数在开始这篇之前&#xff0c;前面有两篇指针初阶&#xff0c;如果需要的话可以去看看哟&#xff01;指针初阶1&#…

网络安全等级保护确定定级对象

声明 本文是学习github5.com 网站的报告而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网络安全等级保护确定定级对象 信息系统 定级对象的基本特征 作为定级对象的信息系统应具有如下基本特征&#xff1a; 具有确定的主要安全责任主体&#xff1…

【MySQL进阶教程】SQL优化

前言 本文为 【MySQL进阶教程】SQL优化 相关知识&#xff0c;下边将对主键优化&#xff0c;order by优化&#xff0c;group by优化&#xff0c;limit优化&#xff0c;count优化&#xff0c;update优化等进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &am…

利用Python为女神制作一个专属网站

快跟随小编一起学习一下如何利用Python语言制作一个专属的网站送给女神吧&#xff01; 如觉得博主文章写的不错或对你有所帮助的话&#xff0c;还望大家多多支持呀&#xff01;关注、点赞、收藏、评论。 目录如觉得博主文章写的不错或对你有所帮助的话&#xff0c;还望大家多多…

1995-2019年全球清廉指数

1995-2019年全球清廉指数 1、时间&#xff1a;1995-2019年 2、来源&#xff1a;透明国际&#xff08;Transparency International&#xff09; 3、区域&#xff1a;全球170多个国家 4、指标说明&#xff1a; 清廉指数&#xff08;Corruption Perceptions Index&#xff0c…

【自学C++】C++ short

C short C short教程 C 中的 short 用来表示一个 整数&#xff0c;也可以叫做短整型&#xff0c;如果我们需要表示的整数比较小&#xff0c;那么我们可以使用 short 来定义&#xff0c;这样可以节省系统资源。 C short定义详解 语法 short int varname value; short varn…

【django】关联模型类中数据的增删改查操作总结

文章目录一、多对一正向操作1、改方法一方法二2、删3、查反向操作案例1&#xff1a;查询百度渠道下的所有学生信息案例2&#xff1a;新增一个百度渠道下的学生1、增直接创建Student对象2、改方法一&#xff1a;add()案例1&#xff1a;将s1,s2,s3添加到百度渠道中方法二:替换对象…

【Java】遨游在多线程的知识体系中(二)

前言&#xff1a;一、分析上篇多线程不安全原因1. count 操作是三个步骤&#xff0c;load add save2. 多个线程之间的调度是无序的&#xff0c;两个线程的上述三个操作可能存在多种不同的相对顺序3. 线程针对变量的修改不是原子的4. 内存可见性5.指令重排序二、synchronize 关键…

Java中clone的浅拷贝和深拷贝区别以及方法详解

克隆定义 在 Java 中&#xff0c;克隆是创建原始对象的精确副本的过程。它本质上意味着能够创建一个与原始对象具有相似状态的对象。 复制对象&#xff0c;首先要分配一个和源对象同样大小的空间&#xff0c;在这个空间中创建一个新的对象。 new对象和clone区别 使用new操作符创…

Python批量采集无水印短视频内容

前言 短视频流行起来可不是一年两年了&#xff0c;现在很多年轻人都在玩短视频&#xff0c;有些的单纯就是看看&#xff0c;而有些的就是自己发视频 我每天刷视频&#xff0c;一刷就停不下来&#xff0c;应该还是有蛮多人跟我一样的吧 那有没有想法用自己所学的python知识&a…

Linux管道——进程间通信(匿名管道、命名管道)

文章目录一、进程间通信1.1 进程间通信的概念1.2 进程间通信的目的1.3 进程间通信的本质1.4 进程间通信的分类二、管道2.1 匿名管道① 匿名管道的使用场景② 匿名管道实现通信的原理③ 创建匿名管道 pipe函数④ fork共享管道⑤ 匿名管道的五个特点⑥ 匿名管道的四种特殊情况2.2…

开发模型和测试模型,考点归纳,你都记住了吗?

目录 前言 一、开发模型 1.1、瀑布模型 1.2、螺旋模型 1.3、迭代模型和增量模型 1.4、敏捷模型 敏捷开发最流行的方式——scrum模型 二、测试模型 2.1、V模型 2.2、W模型&#xff08;双V模型&#xff09; 前言 对于模型&#xff0c;需要重点掌握特点&#xff0c;缺点&…

模板编程:constexpr +特例化 判断质数

重点&#xff1a; 1.constexpr 函数支持在编译期间完成计算 2.特例化是模板中一种定义 using namespace std;//编译期进行判断 constexpr bool isPrime(unsigned int p) {for (unsigned int d2;d<p/2;d){if (p % d 0){return false;}}return p > 1; }template<int…

python爬虫入门

基础知识 HTTP协议 我们浏览网页的浏览器和手机应用客户端与服务器通信几乎都是基于HTTP协议&#xff0c;而爬虫可以看作是一个另类的客户端&#xff0c;它把自己伪装成浏览器或者手机应用客户端&#xff0c;按照自己的逻辑贪婪的向服务器索取数据&#xff0c;如何向服务器索…

【实操篇】Linux的网络环境及其配置

目录 ●Linux网络环境原理图&#xff08;NAT模式&#xff09; ●虚拟网络编辑器对虚拟网卡ip进行修改&#xff08;VMnet-&#xff09; ●查看网关( VMnet8->WLAN) ●Linux网络ip配置 1.修改配置文件去获取固定ip 2.自动获取ip连接网络 ●Linux网络环境原理图&#xff…

【vue2】计算属性(computed)与侦听器(watch)详解

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;计算属性与侦听属性的用法 目录&#xff08;文末有给大家准备好的Xmind思维导图&#xf…

JAVA单商户商城系统源码,前(vue)后(SpringBoot)端分离,支持多平台(h5,小程序,app)

前言 完整代码下载地址&#xff1a;JAVA单商户商城系统源码 linjiashop 是一个基于Spring Boot和Vue.js的web商城系统 linjiashop 包含了商城的后台管理系统,手机h5&#xff0c;小程序版本 linjiashop 采用web-flash作为底层基础框架搭建&#xff0c;开发过程遇到问题请多阅…