部署 Web 项目到 Linux,可以使他人也访问项目的方法

news2024/9/22 23:29:21

目录

一、环境配置

二、建构项目并打包

三、上传Jar包到服务器, 并运行

3.1 上传Jar包

3.2 运行 jar 包

3.3 开放端口号

四、其他问题

4.1 运行异常问题

4.2 杀掉进程

五、总结


一、环境配置

如果本地项目是SpringBoot项目,使用的数据库是MySQL,那么就需要在Linux系统上安装JDK,MySQL,需要跟本地项目使用的版本一致。可参考上篇内容:

Linux搭建Java部署环境:安装 JDK 和 MySQL 的教程

接着在Linux系统上导入本地项目所用的sql文件,完成之后,修改本地项目里的数据库配置,改为Linux系统上的数据库用户名和密码。并且将日志文件的位置改为Linux系统上的文件位置(位置随意,没有的话可以提前建一个)。

如果配置文件有两个,专门设置了本地环境运行和线上环境运行的配置文件,那么可以如下操作:

针对不同平台创建不同的配置文件,要求名字为 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=false
  username: root
  password: root
  driver-class-name: com.mysql.cj.jdbc.Driver
application-prod.yml
spring:
 datasource:
  url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=false
  username: root
  password: 123456
  driver-class-name: com.mysql.cj.jdbc.Driver
在主配置文件  application.yml 中指定配置文件, 并删除数据库相关配置
spring:
 profiles:
  active: prod

二、建构项目并打包

在本地使用maven进行打包。如果Test代码中有与环境配置相关的操作(比如数据库相关的操作),打包会失败,点击如下图标,可以跳过测试打包,随后点击点击 clean->package :

三、上传Jar包到服务器, 并运行

3.1 上传Jar包

直接拖动打好的jar包到xshell窗口即可完成文件的上传:
Xshell 可以直接拖动文件到窗口,达到上传文件的目的,如果使用其他客户端,不支持文件的上传,需要借助 lrzsz 命令:
上传文件:
sz filename
下载文件:
rz
执行该命令后,在弹出框中选择要上传的文件即可,上传的速度取决于网络。
问题: 如果执行上述命令之后,提示 Command 'XX' not found,表示当前云服务器未安装lrzsz 命令,需要先进行安装。
安装 lrzsz:
apt-get install lrzsz

3.2 运行 jar 包

nohup java -jar blog-spring-0.0.1-SNAPSHOT.jar &
nohup : 后台运行程序,用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
语法格式:
 nohup Command [ Arg … ] [ & ]
参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。

3.3 开放端口号

如果外网需要访问该服务,需要先服务器防火墙开放对应的端口号。
本着服务器安全的原则,云服务器上的端口非必要不开启。比如常见端口号:数据库 3306 , Redis 6379,尽可能避免开放,而是采用其他方式来连接,比如配置隧道的方式。
以腾讯云服务器举例:
1) 进入防火墙管理页面

 

2) 添加规则

端口号写需要开放的端口号,多个端口号以逗号分割。

完成之后就可以验证了。访问项目: http://IP:Port/blog_login.html 。IP改为云服务器的IP,Port改为项目的端口号,可以正常访问即可。

四、其他问题

4.1 运行异常问题

一个程序的正常运行,需要程序的正确和环境的正确。同样的代码在Windows上可以运行成功,不一定在 Linux上运行成功。不同的系统对代码的理解和支持是不同的。比如Windows系统对MySQL不区分大小写,Linux区分大小写。
服务不能正常访问的原因有很多,主要分以下方面:
1. 服务未启动:
  • 使用 ps -ef|grep java 查看程序是否在运行。
  • 使用 curl http://127.0.0.1:8080/blog_login.html 看下是否有返回html页面, 如果有返回, 说明程序启动成功了, 考虑端口未开放。
  • 如果未启动成功, 需要查看对应的日志, 根据原因来分析:数据库不存在;表不存在(区分大小写) 数据库密码不正确Jdk 安装版本不对, 或者未安装;mysql未设置密码 等等。
2. http端口未开放:
检查云服务器防火墙/安全组是否开放相应端口(如8080)

4.2 杀掉进程

如果我们需要重启服务,或者重新部署等,都需要先停止之前的服务。
查看当前服务的进程:
ps -ef|grep java

上图35443 就是该服务的进程。
杀掉进程:
kill -9 PID

五、总结

  1. 连接Linux服务器的方式有很多,xshell只是其中一种,xshell是一个客户端,而非服务器。
  2. Ubuntu 软件管理工具是apt,其他的linux发性版本软件包管理工具不同,比如CentOS是使用yum来管理软件的。
  3. SpringBoot可以使用多个配置文件来完成不同平台的配置。
  4. 在Window上可以运性成功的代码,在Linux上不一定能运性成功。
  5. 启动程序需要使用nohup后台运行,需要停止服务时, 使用kill命令。

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

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

相关文章

C语言基础(二十六)

二叉树节点通常包含三个部分&#xff1a;存储数据的部分、指向左子节点的指针、以及指向右子节点的指针。 测试代码&#xff1a; #include "date.h" #include <stdio.h> #include <stdlib.h> #include <time.h> // 定义二叉树节点的结构&a…

Linux虚拟机搭建K8S环境

文章目录 一、环境准备二、系统初始化三、部署master四、添加node节点五、部署网络六、部署dashboard七、登录dashboard面板 一、环境准备 首先在vmware上新建4台相同配置的虚拟机&#xff0c;除了IP和主机名外&#xff0c;其余配置相同。由于是搭建K8S初始环境&#xff0c;没…

Pyqt5高级技巧:多线程任务、窗体交互、常用控件介绍(含基础Demo)

一、多线程任务和多窗体交互 【main】 import MainForm #import CRUD import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBoxif __name__ __main__:app QApplication(sys.argv)MainWindow QMainWindow()ui MainForm.Ui_MainWindow()#也可能是Ui…

算法设计与分析:实验三 回溯法——地图填色问题

实验内容与要求&#xff1a; 问题描述&#xff1a; 我们可以将地图转换为平面图&#xff0c;每个地区变成一个节点&#xff0c;相邻地区用边连接&#xff0c;我们要为这个图形的顶点着色&#xff0c;并且两个顶点通过边连接时必须具有不同的颜色。附件是给出的地图数据&#…

如何在 MySQL 中使用 Socket 身份验证 ?

在 MySQL 和 MariaDB 中&#xff0c;可以使用 socket 身份验证&#xff0c;而不是传统的用户名和密码组合。这种方法既安全又方便&#xff0c;因为它使用的是操作系统的用户凭证。 什么是 Socket 身份验证? Socket 身份验证允许使用 Unix 或 Linux 用户凭证连接到数据库&…

NS4892B 蓝牙耳机充电仓-线性锂电池充放电管理 IC

1 特性 充电部分  (0V) 涓流 / 恒流 / 恒压三段式充电  内部设定 300mA 充电电流  线性工作模式充电  内置自动复充功能  内部预设 4.2V 充电浮充电压  内置过温保护 放电部分  同步升压输出 5.1V  放电开关频率 1MHz  放电效率最…

【网络】NAT、代理服务、内网穿透

NAT技术与代理服务 文章目录 1.NAT技术1.1NAT技术背景1.2NAT IP转换过程1.3NAPT1.4NAT技术的缺陷 2.代理服务器3.NAT和代理服务器的区别4.内网穿透 1.NAT技术 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;技术&#xff0c;是解决IP地址不…

高效处理高并发手机号查询请求:系统设计与优化策略

高效处理高并发手机号查询请求&#xff1a;系统设计与优化策略 一、系统架构设计原理1. 路由网关层2. Web服务层3. 消息队列层4. 实时查询微服务层5. 缓存预热服务 二、总结与优化 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在现代互联…

Java语言程序设计基础篇_编程练习题17.14 (加密文件)/17.15 (解密文件)

题目&#xff1a;17.14 (加密文件) 通过给文件中的每个字节加5来对文件编码。编写一个程序&#xff0c;提示用户输入一个输入文件名和一个输出文件名&#xff0c;然后将输入文件的加密版本存入输出文件。 代码示例&#xff1a;编程练习题17_14EncryptFiles.java package chapte…

VM Workstation虚拟机AlmaLinux 9.4操作系统安装(桌面版安装详细教程)(宝塔面板的安装),填补CentOS终止支持维护的空白

目录 AlmaLinux介绍 AlmaLinux操作系统的安装 1、下载镜像文件 2、新建虚拟机 &#xff08;1&#xff09;点击创建新的虚拟机 &#xff08;2&#xff09;打开虚拟机向导后&#xff0c;选择“自定义”安装&#xff0c;然后点击“下一步” &#xff08;3&#xff09;选择虚…

文本数据分析-(TF-IDF)(1)

文章目录 一、TF-IDF简介1.意义2.TF与IDF1).TF&#xff08;Term Frequency&#xff09;2).IDF&#xff08;Inverse Document Frequency&#xff09;3).TF-IDF 二、应用三、代码实现1.文件读取2.数据预处理3.排序和输出4.全部代码 一、TF-IDF简介 1.意义 TF-IDF&#xff08;Te…

大数据查询优化之谓词下推 ?

谓词 谓词&#xff0c;可以理解为条件表达式&#xff0c;在SQL中&#xff0c;谓词就是返回Boolean值&#xff0c;即True或False的函数&#xff0c;或是隐式转换为Boolean的函数。SQL中的谓词主要有 LKIE、BETWEEN、IS NULL、IS NOT NULL、IN、EXISTS其结果为布尔值&#xff0c…

NASA数据集:ASO L4雷达雪神数据集

目录 简介 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ASO L4 Lidar Snow Depth 50m UTM Grid V001 简介 该数据集包含根据机载光探测和测距仪&#xff08;或称激光雷达&#xff09;对地表高程的测量得出的 50 米网格雪深。 这些数据是 NASA/JPL 机载雪地观测…

如何构建基于Java SpringBoot的医疗器械管理系统?四步详解从需求分析到系统部署,集成Vue.js提升用户体验,内含MySQL数据库管理技巧。

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

采购管理流程:自动化如何使效率提升75% ?

与许多业务流程一样&#xff0c;采购到付款 (P2P) 流程也面临着潜在错误、可避免的成本支出以及可能导致的延误。目前&#xff0c;实现自动化的采购流程比例尚不足一半。 自动化在工作场所的应用具有深远的影响&#xff0c;其重要性不言而喻。对于某些企业而言&#xff0c;自动…

android openGL ES详解——面剔除

一、什么是面剔除&#xff1f; 1.面剔除 尝试在头脑中想象一下有一个3D立方体&#xff0c;你从任何一个方向去看它&#xff0c;最多可以同时看到多少个面。如果你的想象力不是过于丰富&#xff0c;你最终最多能数出来的面是3个。你可以从一个立方体的任意位置和方向上去看它&…

金融上云方案中,国产虚拟化产品选型的重点考虑因素、自动化运维建设步骤及如何进行保障数据中心安全需求的存储设计等问题及解决方法|金融行业数字化QA合集③

Q&#xff1a;金融机构应该从哪些方面考虑虚拟化产品选型&#xff1f; 我行是中小规模城商行&#xff0c;想实现虚拟化国产替换&#xff0c;针对国产虚拟化种类繁多的情况&#xff0c;我行应该从哪些方面考虑产品选型&#xff0c;确保所选择产品既能满足信创替换&#xff0c;又…

银河麒麟v10-sp3-x86系统安装k8s-1.30.4

X86-64和arm架构的区别 x86-64架构&#xff1a; 设计理念&#xff1a;x86-64架构起源于Intel的x86架构&#xff0c;并对其进行了64位扩展。这种架构的设计侧重于高性能和灵活性&#xff0c;适合处理复杂的计算任务。 性能特点&#xff1a;x86-64架构的处理器通常提供高性能的…

六个方面探讨企业为何迫切需要替换FTP

随着信息技术的迅猛发展和网络安全形势的日趋严峻&#xff0c;传统的FTP文件传输协议因其固有的局限性和安全隐患&#xff0c;逐渐难以满足现代企业的需求。因此&#xff0c;寻找并升级FTP替代方案成为众多企业需要解决的问题。本文将从六个方面探讨企业为何迫切需要替换FTP。 …

云轴科技ZStack产品升级,浙江分公司产品发布会成功举办

近日&#xff0c;以“智启未来&#xff0c;云端共赢”为主题的云轴科技ZStack浙江分公司针对浙江地区渠道合作伙伴的产品发布会在杭州顺利召开。ZStack总代理伟仕佳杰、神州数码、英迈等百余位合作伙伴代表出席会议&#xff0c;共同见证ZStack在云基础设施与AI软件基础设施领域…