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.mzph.cn/news/121245.shtml

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

相关文章

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

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

Go基础——基础语法

1、简介 Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。语法类似于C,专为高性能和并发程序而设计。通常用于网络编程、云服务器、游戏服务器、DevOps、Web应用、分布式系统、容器虚…

mysql-linux归档版安装

什么是归档版安装?简单来说就是编译好的软件压缩打包版。 说明:我这里服务器之前已经装过一个不同版本的mysql,已经占用了3306端口,所以这里我用3307端口来演示,命令和官方的稍有不同,不过步骤都是差不多的…

搜索引擎搜索技巧总结

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

计算机视觉 激光雷达结合无监督学习进行物体检测的工作原理

一、简述 激光雷达是目前正在改变世界的传感器。它集成在自动驾驶汽车、自主无人机、机器人、卫星、火箭等中。该传感器使用激光束了解世界,并测量激光击中目标返回所需的时间,输出是点云信息,利用这些信息,我们可以从3D点云中查找障碍物。 从自动驾驶汽车的角度看激光雷达…

专业135总分400+西安交通大学信息与通信工程学院909/815考研经验分享

今年初试发挥不错,400,专业课135,将近一年复习一路走来,感慨很多,希望以下经历可以给后来的同学提供一些参考。 初试备考经验 公共课:三门公共课,政治,英语,数学。在备考…

轮转数组(Java)

大家好我是苏麟 , 这篇文章是凑数的 ... 轮转数组 描述 : 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 题目 : 牛客 NC110 旋转数组: 这里牛客给出了数组长度我们直接用就可以了 . LeetCode 189.轮转数组 : 189. 轮…

Nginx 的配置文件(负载均衡,反向代理)

Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。 cmd查找端口是否使用:netstat -ano Nginx出现403 forbidden #解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户&…

田忌赛马(贪心算法)

分为两种情况: 1.田最快 快于 王最快(田最快面对任何都赢) ->故和王最快比,消耗王最快 2.田最快 小于等于 王最快(王最快面对任何都可赢) 则比最慢(意在找一匹无法赢任何马的马&#…

20.1 OpenSSL 字符BASE64压缩算法

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

shell实验

1.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如:test1、test2、test3、....、test10 编写脚本,使用read -p提醒用户从键盘输入账户名前缀以…

[论文笔记]GTE

引言 今天带来今年的一篇文本嵌入论文GTE, 中文题目是 多阶段对比学习的通用文本嵌入。 作者提出了GTE,一个使用对阶段对比学习的通用文本嵌入。使用对比学习在多个来源的混合数据集上训练了一个统一的文本嵌入模型,通过在无监督预训练阶段和有监督微调阶段显著增加训练数…

hdlbits系列verilog解答(移位寄存器)-23

文章目录 一、问题描述二、verilog源码三、仿真结果 一、问题描述 您将获得一个具有两个输入和一个输出的模块 my_dff (实现 D 触发器)。实例化其中的三个,然后将它们链接在一起以形成长度为 3 的移位寄存器。端口 clk 需要连接到所有实例。…

三篇论文:速览GPT在网络安全最新论文中的应用案例

GPT在网络安全领域的应用案例 写在最前面论文1:Chatgpt/CodeX引入会话式 APR 范例利用验证反馈LLM 的长期上下文窗口:更智能的反馈机制、更有效的信息合并策略、更复杂的模型结构、鼓励生成多样性和GPT类似的步骤:Conversational APR 对话式A…

Windows VS C++工程:包含目录、库目录、附加依赖项、附加包含目录、附加库目录配置与静态库、动态库的调用——以OCCI的配置为例

文章目录 1 包含目录(Include Directories)/ 附加包含目录(Additional Include Directories)1.1 区别和作用1.2 设置路径 2 库目录(Library Directories)/ 附加库目录(Additional Library Direc…

element ui el-table表格纵向横向滚动条去除并隐藏空白占位列

需求 当table内容列过多时,可通过height属性设置table高度以固定table高度、固定表头,使table内容可以滚动 现在需求是右侧滚动条不好看,需要去除滚动条,并隐藏滚动条所占列的位置 // ----------修改elementui表格的默认样式-…

Spring MVC的常用注解

目录 RequestMapping 例子: RequestMapping 支持什么类型的请求 使 RequestMapping 只支持特定的类型 RestController 通过 HTTP 请求传递参数给后端 1.传递单个参数 注意使⽤基本类型来接收参数的情况 2.传递多个参数 3.传递对象 4.RequestParam 后端参数…

配置Super-VLAN下的DHCP服务器示例

组网需求 如图1所示,某公司拥有两个部门,为了节省IP地址,部门A和部门B规划为同一网段;为了提升业务安全性,将不同部门的用户划分到不同VLAN中。企业管理员为了方便统一管理,希望部门内终端通过DHCP服务器动…

NX二次开发后处理中保存tcl变量值到文本

直接上代码: static bool GetTclValue(UF_MOM_id_t mom_id, char *szName, char *szInfo, std::string &stValue,bool bShowValue /* false*/) {UF_MOM_ask_string(mom_id, szName, (const char **)&szInfo);if (szInfo){stValue szInfo;if (bShowValue){…

【Spring】快速入门Spring Web MVC

文章目录 1. 什么是Spring Web MVC1.1 MVC1.2 Spring MVC 2. 使用Spring MVC2.1 项目创建2.2 建立连接2.2.1 RequestMapping 注解2.2.2 RestController 注解2.2.3 RequestMapping 使⽤2.2.4 RequestMapping 是什么请求?POST?GET?…&#xff1…