Linux虚拟机部署与发布项目(Windows版本)

目录

前言

一、虚拟机部署项目的流程

二、单机项目

1. 本机测试

2.虚拟机部署项目

三、前后端分离项目


前言

在软件开发过程中,部署和发布项目是非常重要的一环。使用虚拟机技术可以方便、灵活且可重复使用地部署和发布项目。本篇博客将介绍如何在 Windows 环境下使用虚拟机来部署和发布 Linux 项目。

一、虚拟机部署项目的流程

前四布流程可查看该博客安装虚拟机(VMware)保姆级教程及配置虚拟网络编辑器和安装WindowsServer以及宿主机访问虚拟机和配置服务器环境

1.准备工作

首先,需要下载和安装虚拟机软件。常见的虚拟机软件包括 VMware Workstation、Oracle VirtualBox 等。其次,需要获取所需的 Linux 操作系统镜像文件。可以从官方网站或其他可信来源下载。

2.创建虚拟机

使用虚拟机软件创建一个新的虚拟机实例。在创建虚拟机时,需要配置虚拟机的硬件设置,如内存、处理器等。接下来,需要安装 Linux 操作系统并进行基本配置。

3.配置网络

设置虚拟机的网络连接方式,如桥接模式或 NAT 模式。桥接模式可以让虚拟机直接连接到物理网络,而 NAT 模式则可以让虚拟机通过主机来访问外部网络。配置网络参数,如 IP 地址、子网掩码等。

4.安装 Linux 软件

下载和安装所需的 Linux 软件,如 Apache、MySQL、jdk等。可以使用包管理器来安装软件。

5.导入和配置项目

将 Linux 项目导入到虚拟机中。需要配置项目的依赖项、数据库连接等。可以使用编辑器或命令行工具来进行配置。

6.运行和测试项目

在虚拟机中启动应用服务器,如 Apache、Tomcat 等。部署项目并启动应用。使用浏览器访问项目,并进行功能测试。

7.备份和复制虚拟机

学习如何备份和复制虚拟机以供后续使用或共享给他人。可以使用虚拟机软件提供的快照功能来进行备份和复制。

二、单机项目

拿到开发完的项目之后,进行解压,最起码会有如下图几个文件 : 

1. 本机测试

在本机中将SQL文件导入测试是否有问题

将开发完项目的war,复制到主机的tomcat下的webapps目录中 

在tomcat的bin目录下,找到startup.bat文件双击进行启动tomcat

 运行好之后,在浏览器输入地址进行访问,如果运行成功则代表项目本身是没有问题

2.虚拟机部署项目

将项目共享到虚拟机

解压并将war包放入tomcat下的webapps中

到主机数据库中,找到连接了虚拟机的数据库,创建与单机项目中的数据库名称一样的数据库,并且将数据库脚本导入到数据库中。 

运行tomcat并查看该项目的数据库配置 

在主机的浏览器中进行访问虚拟机中部署的项目,访问的请求地址中需要增加虚拟机的IP,可以进行访问说明完成部署。

三、前后端分离项目

这里本机测试就不带大家一步步测试了,都差不多,也非常简单,接下来我们将继续介绍如何通过虚拟机去部署前后端分离项目

解压并将war包放入tomcat

运行tomcat并查看该项目的数据库配置

导入我们的数据库脚本 

配置node.js环境

解压
将文件解压到指定位置(例如:C:\software\NodeJS),并在解压后的目录下建立node_global和node_cache这两个目录

      注:新建目录说明

           node_global:npm全局安装位置

           node_cache:npm缓存路径

配置环境变量
新增NODE_HOME

修改PATH并在最后添加:;%NODE_HOME%;%NODE_HOME%\node_global;

测试安装是否成功:打开cmd窗口,输出如下命令:

           node -v  输出NodeJs版本号

           npm -v  输出npm的版本号

配置npm全局模块路径和cache默认安装位置
      打开cmd,分开执行如下命令:

      npm config set cache "D:\software\NodeJS\node-v10.15.3-win-x64\node-v10.15.3-win-x64\node_cache"

      npm config set prefix "D:\software\NodeJS\node-v10.15.3-win-x64\node-v10.15.3-win-x64\node_global"

 注1:将步骤一创建的node_global(npm全局安装位置)和node_cache(npm缓存路径)与npm联系起来

注2:如果执行命令卡死,可以删除C:\Users\用户名\.npmrc 后重新执行。(用户名:为当前电脑的用户名)

 注3:"D:\software\NodeJS\node-v10.15.3-win-x64\node-v10.15.3-win-x64\node_global",双引号不能少

修改npm镜像提高下载速度
可以使用 cnpm 或 直接设置 --registry ,推荐设置 --registry

 --registry

          设置淘宝源

          npm config set registry https://registry.npm.taobao.org/

          查看源,可以看到设置过的所有的源

          npm config get registry

          注1:其实此步骤的内容就是将以下代码添加到C:\Users\用户名\.npmrc文件中

               registry=https://registry.npm.taobao.org

cnpm

          npm install -g cnpm --registry=https://registry.npm.taobao.org

          注1:cnpm安装完成后,以后就可以用cnpm命令代替npm命令, 此时npm还是会用官方镜像,cnpm会用国内镜像

          注2:如果要恢复成原来的设置,执行如下:

               npm config set registry https://registry.npmjs.org/

验证安装结果
1 版本验证

          node -v

          npm -v

2 查看淘宝镜像设置情况

          npm get registry

 3 查看npm全局路径设置情况

          此步骤随便全局安装一个模块就可以测评

          npm install webpack -g

         以上命令执行完毕后,会生成如下文件

          %node_home%\node_global\node_modules\webpack

  注意:下载过程中出现warn不用管,出现Error,删掉下载的破碎文件重新下载

如何运行下载的Node.js项目
将下载的项目解压到指定目录,本例是解压到:C:\Users\86155\Desktop\pro\nmgwap-vueproject-master\vueproject,

直接输入cmd进入

再输入npm i 

我们的模块就在下载了,注意这里必须要联网 

命令执行完后,你会发现,项目的根目录下多了一个node_modules文件夹,

那里面就是从npm远程库里下载的模块,然后“安装”到你的项目中,

此步骤,可理解成修改maven的pom文件添加依赖,然后maven再从中央仓库下载依赖

 那pom文件在哪里呢?其实就是项目中的package.json

执行命令npm run dev就可以启动项目了

运行项目

前后端分离的项目如果直接这么访问就会访问不到,只有虚拟机自己才可访问。

以下我提供两种解决方案:

1.解决spa项目宿主机访问

使用nginx反代理工具

进入nginx下的conf文件夹下的nginx.conf文件进行配置代理url

在nginx根目录下输入cmd进入命令窗口输入 nginx.exe -s reload重启

接下来我们就可以访问啦

解决spa项目宿主机访问

在spa项目中找到config文件下的index.js将localhost改为0.0.0.0

http://192.168.137.128:8081/也可以进行访问 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快速入门Elasticsearch:安装、基本概念、分词器和文档基本操作详解

本文主要介绍快速入门 Elasticsearch,从 安装 、 基本概念 、 分词器 、*** 文档基本操作 *** 这 4 个方面快速入门。 Elasticsearch 是一款近实时的搜索引擎,底层是基于 Lucene 做搜索,再此基础上加入了分布式的特性,以便支持海…

【密评】商用密码应用安全性评估从业人员考核题库(十四)

商用密码应用安全性评估从业人员考核题库(十四) 国密局给的参考题库5000道只是基础题,后续更新完5000还会继续更其他高质量题库,持续学习,共同进步。 3251 单项选择题 根据GB/T 39786《信息安全技术 信息系统密码应用…

力扣每日一题79:单词搜索

题目描述: 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格…

Unity的unity_ObjectToWorld里的每一列分别代表什么意思?换个方向反向理解-更简单

官方关键UnityObjectToWorldNormal() 代码 从乐乐姐的书中得知,当我们在shader想获得法线,大概会这么些 o.wordDir UnityObjectToWorldNormal(i.normal) (这行代码就包含了官方对“unity_ObjectToWorld”的终极理解…

SpringBoot | SpringBoot中实现“微信支付“

SpringBoot中实现"微信支付": 1.“微信支付”产品2."微信支付"接入流程3.“微信小程序支付”时序图:3.1 “商家端JSAPI下单” 接口3.2 “微信小程序端调起支付” 接口 4.微信支付准备工作:4.1 获得微信支付平台证书、商户私钥文件4…

永恒之蓝漏洞 ms17_010 详解

文章目录 永恒之蓝 ms 17_0101.漏洞介绍1.1 影响版本1.2 漏洞原理 2.信息收集2.1 主机扫描2.2 端口扫描 3. 漏洞探测4. 漏洞利用5.后渗透阶段5.1创建新的管理员账户5.2开启远程桌面5.3蓝屏攻击 永恒之蓝 ms 17_010 1.漏洞介绍 永恒之蓝(ms17-010)爆发于…

搜索引擎搜索技巧总结

晚上在B站上刷到一个关于搜索技巧的干货视频,这个视频真的不错,结尾还提到了AI时代的搜索思路之前自己也零碎的探索出了一些搜索技巧,但是没有总结,就没法稳定的加入自己的工作流,持续提高效率受到这个视频的启发&…

MySQL 5.7限制general_log日志大小

背景 需求: 在MySQL 5.7.41中开启general_log 并限制其大小,避免快速增长占用硬盘空间。 解决: 通过定时任务,执行简单的脚本,判断general_log 日志的大小,实现对通用查询日志的“每日备份”或“每日清…

毅速丨哪些金属材料在3D打印中应用最多

金属3D打印作为一种新兴的制造技术已经在很多领域得到广泛应用,目前金属3D打印应用较多的材料有不锈钢、钛合金、铝合金、钴铬合金、镍基合金、模具钢等,其中不锈钢材料的应用最为常见。 这些金属3D打印材料各有其特点和适用场景,可以根据具体…

Qt重定向QDebug,Qt/C++开源作品39-日志输出增强版V2022

Qt重定向QDebug,自定义一个简易的日志管理类 Chapter1 Qt重定向QDebug,自定义一个简易的日志管理类0.前言1.最简单的操作运行结果2.实现一个简易的日志管理类 Chapter2 Qt::Qt Log日志模块Qt Log日志模块官方解释官方Demo思路 Chapter3 QT日志模块的个性…

蓝桥杯 第 2 场算法双周赛 第3题 摆玩具【算法赛】 c++ 贪心

题目 摆玩具【算法赛】https://www.lanqiao.cn/problems/5888/learning/?contest_id145 问题描述 小蓝是一个热爱收集玩具的小伙子,他拥有 n 个不同的玩具。 这天,他把 n 个玩具按照高度顺序从矮到高摆放在了窗台上,然后,他希…

阿里云对象存储OSS文件无法预览,Bucket设置了Referer

您发起的请求头中没有Referer字段或Referer字段为空,与请求Bucket设置的防盗链策略不相符。 解决方案 您可以选择以下任意方案解决该问题。 在请求中增加Referer请求头。 GET /test.txt HTTP/1.1 Date: Tue, 20 Dec 2022 08:48:18 GMT Host: BucketName.oss-examp…

Docker GitLab-Runner安装

Docker GitLab-Runner安装 GitLab-Runner安装 问题合集GitLab 域名的配置修改Runner容器内注册失败,提示 dial tcp: lookup home.zsl0.com on 192.168.254.2:53: no such host GitLab-Runner 安装 拉去gitlab/gitlab-runner镜像 docker pull gitlab/gitlab-runne…

汽车行驶性能的主观评价方法(1)-底盘校准方法

底盘校准的目的是,从行驶性能和行驶舒适性两个方面进行协调,从而优化行驶动力学特性。为了达到这一目标,工程人员早在设计阶段,就对大多数对行驶动力性有重要意义的部件提出了要求。这些要求不仅与底盘的组件有关,还必…

轻量封装WebGPU渲染系统示例<2>-彩色立方体(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/VertColorCube.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 5. …

超宽带技术在汽车领域的应用

随着科技的不断发展,超宽带(Ultra-Wideband, UWB)技术在各个领域展现出了强大的潜力,其中汽车领域更是受益匪浅。UWB技术以其高精度的定位能力、高速的数据传输和低功耗的特点,为汽车行业带来了许多创新。本文将探讨UW…

20.1 OpenSSL 字符BASE64压缩算法

OpenSSL 是一种开源的加密库,提供了一组用于加密和解密数据、验证数字证书以及实现各种安全协议的函数和工具。它可以用于创建和管理公钥和私钥、数字证书和其他安全凭据,还支持SSL/TLS、SSH、S/MIME、PKCS等常见的加密协议和标准。 OpenSSL 的功能非常…

安卓开发实例:方向传感器

调用手机的方向传感器&#xff0c;X轴&#xff0c;Y轴&#xff0c;Z轴的数值 activity_sensor.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.c…

Git Gui使用技巧

资料 https://www.runoob.com/w3cnote/git-gui-window.html 操作过程 创建仓库→添加远程仓库→扫描目录→文件移动→提交→上传 注意填注释 文件忽略 创建文件.gitignore→编写内容 *.log #文件 config.ini #文件 temp/ #目录

Linux--安装与配置虚拟机及虚拟机服务器坏境配置与连接---超详细教学

一&#xff0c;操作系统介绍 1.1.什么是操作系统 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff09;是一种系统软件&#xff0c;它是计算机硬件和应用软件之间的桥梁。它管理计算机的硬件和软件资源&#xff0c;为应用程序提供接口和服务&#xff0c;并协调…