部署 Web 项目到Linux上

目录

环境配置

构建项目

​编辑

数据准备

运行并查看日志

杀掉进程


把程序安装到生产环境上, 这个过程称为 "部署",也叫 "上线"。一旦程序部署成功, 那么这个程序就能被外网中千千万万的普通用户访问到。

环境配置

程序配置文件修改

实际工作中, 开发环境, 测试环境以及生产环境的配置都是不一样的。比如如mysql的用户名和密码 我们可以针对不同的环境, 设置不同的配置。

多平台文件配置

针对不同平台创建不同的配置文件, 要求名字为application-XXX.yml或者application-XXX.properties 。以下以application-XXX.yml为例:

固定格式, 只有 - 后面的字母可以修改。

在配置文件里写不同的内容

开发环境(本地的)

application-dev.yml

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=falseusername: rootpassword: #本地环境的数据库密码driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:configuration:map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath:mapper/**Mapper.xmllogging:file:name: logger/spring-blog.log

生产环境(部署到云服务器上的)

application-prod.yml

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=falseusername: rootpassword: #生产环境的数据库密码driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:configuration:map-underscore-to-camel-case: true mapper-locations: classpath:mapper/**Mapper.xmllogging:file:name: /var/logger/spring-blog.log

在主配置文件 application.yml 中指定配置文件, 并删除数据库相关配置

spring:profiles:active: prod

如果想要不手动敲代码转换生产环境和开发环境,使用Maven调整,则可以在pom.xml中添加配置。

构建项目

打包生产环境

把jar包上传到云服务器上

在云服务上登录MySQL,创建项目数据库

mysql -uroot -p

数据准备

在云服务器上使用MySQL建立表

-- 建表SQL
create database if not exists java_blog_spring charset utf8mb4;
-- ⽤⼾表
DROP TABLE IF EXISTS java_blog_spring.user;
CREATE TABLE java_blog_spring.user(`id` INT NOT NULL AUTO_INCREMENT,`user_name` VARCHAR ( 128 ) NOT NULL,`password` VARCHAR ( 128 ) NOT NULL,`github_url` VARCHAR ( 128 ) NULL,`delete_flag` TINYINT ( 4 ) NULL DEFAULT 0,`create_time` DATETIME DEFAULT now(),`update_time` DATETIME DEFAULT now(),PRIMARY KEY ( id ),
UNIQUE INDEX user_name_UNIQUE ( user_name ASC )) ENGINE = INNODB DEFAULT CHARACTER
SET = utf8mb4 COMMENT = '⽤⼾表';
-- 博客表
drop table if exists java_blog_spring.blog;
CREATE TABLE java_blog_spring.blog (`id` INT NOT NULL AUTO_INCREMENT,`title` VARCHAR(200) NULL,`content` TEXT NULL,`user_id` INT(11) NULL,`delete_flag` TINYINT(4) NULL DEFAULT 0,`create_time` DATETIME DEFAULT now(),`update_time` DATETIME DEFAULT now(),PRIMARY KEY (id))
ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '博客表';
-- 新增⽤⼾信息
insert into java_blog_spring.user (user_name, password,github_url)values("zhangsan","123456","https://gitee.com/Roylele-java-j");
insert into java_blog_spring.user (user_name, password,github_url)values("lisi","123456","https://gitee.com/Roylele-java-j");
insert into java_blog_spring.blog(title,content,user_id) values("第一篇博客","111我是博客正文我是博客正文我是博客正文",1);
insert into java_blog_spring.blog(title,content,user_id) values("第一篇博客","222我是博客正文我是博客正文我是博客正文",2);

运行并查看日志

nohup : 后台运行程序. 用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行

nohup java -jar 运行的jar包 &

跟踪日志

tail -f xxxx.log

过滤日志

tail -f | grep "Exception"
tail -f | grep "Error"
tail -f | grep "xxxx"

杀掉进程

1. 查看当前服务的进程

ps -ef|grep java

2. 杀掉进程

kill -9 PID

kill -1(重新加载进程)

kill -9(s杀死一个进程)

kill -15(正常停止一个进程)

若再次启动继续使用nohup java -jar xxxx.jar &即可

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

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

相关文章

讲解Python 3的10种基本语法

在学习Python编程语言时,掌握基本语法是至关重要的。本文将通过10个范例详细讲解Python 3的基本语法,帮助读者更好地理解和掌握这门流行的编程语言。 1. 变量和数据类型 Python是一种动态类型语言,不需要事先声明变量的数据类型。例如&…

网络套接字1

网络套接字1 📟作者主页:慢热的陕西人 🌴专栏链接:Linux 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 本博客主要内容讲解了udp的Linux环境下的使用&#xff0c…

Rust 语言中符号 :: 的使用场景

在 Rust 语言中,:: 符号主要用于以下几个场合: 指定关联函数或关联类型: 关联函数(也称为静态方法)是与类型关联而非实例关联的函数。它们使用 :: 符号来调用。例如: let value String::from("Hello,…

有线网络下windows电脑被投屏方案实践

最近在看使用笔记本屏幕作PC副屏的解决方案 无线网络Miracast 如果使用Win10/11自带的Miracast方案(即windows系统中的:设置-系统-投影到此电脑),原则上需要通过Wi-Fi网络(这是因为Miracast就是Wi-Fi联盟组织提出的&a…

react-native 搭建环境及运行项目

目前创建的是0.73版本的,Node 的版本应大于等于 18,需要 Java Development Kit [JDK] 17版本的(必须是17版本)。安装完后你可以在命令行中输入 javac -version(请注意是 javac,不是 java)来查看…

JDK8 新特性和stream流的使用(一)

JDK 8 的新特性包括: Lambda表达式。允许编写更加简洁和灵活的代码,它允许将代码作为参数传递给其他方法或作为函数返回。Lambda表达式使用“->”操作符,并且可以包含一个或多个参数,这些参数的类型由编译器推断得出。123 …

一键优化B2B2C电商系统,开启无限商机

在当今竞争激烈的电商行业,B2B2C模式已成为众多企业选择的经营模式之一。通过一键优化B2B2C电商系统,企业能够开启无限商机,实现更大的发展空间。 首先,优化B2B2C电商系统可以帮助企业提升用户体验,吸引更多客户。通过…

仿生蝴蝶制作——蝴蝶翅膀制作

前言 上一次已经设计好了的翅膀图纸 接下来就是根据这个图纸来制作翅膀。 过程中其实可以不用尺子准确测量,直接用碳纤维棒比着剪下来就好了,然后把减下来的一截比着剪下另一只翅膀需要的材料。因为左右两只翅膀差别不能太大,所以这样是最好…

异步编程和asyncio

介绍异步编程的重要性和在Python中的应用,特别是在I/O密集型任务和网络编程场景下。 目录 理解异步编程 异步编程基本概念 任务与Future 异步编程的工作原理 事件循环 协程(Coroutines) 异步与同步代码的结合 深入asyncio模块 事件循…

CCF-C推荐会议 IEEE CLOUD‘24 3月24日截稿!深圳开启全球云计算新纪元!

会议之眼 快讯 IEEE CLOUD(IEEE International Conference on Cloud Computing)即IEEE云计算国际会议将于 2024 年7月7日至13日在中国深圳举行!IEEE CLOUD由lEEE Computer Society主办,CCF服务计算专委会、北京大学、IBM Research承办。CLOUD一直是研究人…

软件测试APP完整测试作业流程(附流程图),公司级软件测试流程化办公

目录 1. 概述 2. 软件测试流程 3. 软件测试周期人员活动图 4. 总结 1. 概述 1.1 目的 有效的保证软件质量; 有效的制定不同测试类型(软件系统测试、音频主观性测试、Field Trial、专项测试、自动化测试、性 能测试、用户体验测试)的软件…

【框架设计】MVC和MVVM对比图

1. MVC(Model-View-Controller) 单向通信View和Model通过Controller承上启下 2. MVVM(Model-View-ViewModel) 数据绑定M -> VM -> V DOM事件监听 V -> VM -> M 1. MVC是单向的,MVVM是双向的,…

【SpringCloud微服务全家桶学习笔记-GateWay网关(微服务入口)】

Gateway服务网关 API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式,它相当于整个微服务架构中的门面,所有客户端的访问都通过它来进行路由及过滤。它实现了请求路…

二 超级数据查看器   讲解稿   导入功能

二 超级数据查看器 讲解稿 导入功能 APP下载地址 百度手机助手 下载地址4 ​ 讲解稿全文: 大家好。 今天我们对 超级数据查看器的 导入信息功能 做一下详细讲解。 首先,我们打开 超级数据查看器。 我们这个系统要实现的是,快速生…

GEE:基于Landsat8计算陆地表面温度(Land Surface Temperature,LST)

作者:CSDN _养乐多_ 本文将介绍在Google Earth Engine(GEE)平台上使用 Landsat 8 卫星影像数据计算陆地表面温度(Land Surface Temperature,LST)的代码。 结果如下图所示, 文章目录 一、参考…

ChatGPT Prompt方法原理详解

在人工智能的浪潮中,ChatGPT以其出色的对话生成能力引起了广泛关注。其强大的功能背后,离不开其独特的Prompt方法。本文将深入剖析ChatGPT Prompt方法的原理,带领读者了解其背后的奥秘。 ChatGPT Prompt方法的核心在于通过精心设计的提示语(Prompt),引导模型生成符合要求…

阿里P8解析自动化测试工具 —— SeleniumAppium!

自动化测试,利用自动化测试工具,通过录制/编程方式实现测试活动,发现被测对象存在的缺陷,从而替代手工测试活动。自动化测试不局限于某个具体测试阶段,也不局限被测对象的类型,只要满足自动化测试的必要条件…

数据库--SQL语言-1

练习网站:自学SQL网 Select 查询语法复习 SELECT column, another_column, …FROM mytableWHERE condition AND/OR another_condition AND/OR …; 操作符号: 如果属性是字符串, 我们会用到字符串相关的一些操作符号,其中 LIKE&#xff08…

day04-Maven-SpringBootWeb入门

文章目录 01. Maven1.1 课程安排1.2 什么是Maven1.3 Maven的作用1.4 Maven模型1.5 Maven仓库1.6 Maven安装1.6.1 下载1.6.2 安装步骤 2 IDEA集成Maven2.1 配置Maven环境2.1.1 当前工程设置2.1.2 全局设置 2.2 创建Maven项目2.3 POM配置详解2.4 Maven坐标详解2.5 导入Maven项目 …

【axios】你的进度条准确吗

1、axios监听进度 上传和下载操作在前端中是非常常见的,当我们想知道上传或下载的进度时也不难,axios已经实现了监听进度的方法 import axios from axios// 上传请求 axios.post(/api/v1/upload, {data: xxx},{// onUploadProgress回调可以获取进度onU…