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应用、分布式系统、容器虚…

LeetCode--1991.找到数组的中间位置

1 题目描述 给你一个下标从 0 开始的整数数组 nums , 请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个) 中间位置 middleIndex 是满足 nums[0] nums[1] ... nums[middleIndex-1] nums[middleIndex1] nums[middleI…

【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】(最大似然估计量和最大似然估计值的区别)

就我的概率论学习经验来看,这两个概念极易混淆,并且极为重点,然而,在概率论的前几章学习中,如果只是计算,对这方面的辨析不清并没有问题。然而,到了后面的参数估计部分,却可能出现问…

mysql-linux归档版安装

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

搜索引擎搜索技巧总结

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

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

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

mysql存在10亿条数据,如何高效随机返回N条纪录,sql如何写

1 低效方案 1.使用ORDER BY RAND(): SELECT * FROM your_table ORDER BY RAND() LIMIT 1; 这将随机排序表中的所有行,并且通过LIMIT 1仅返回第一行,从而返回一个随机记录。然而,对于大型表来说,ORDER BY RAND()可能会…

机器学习笔记:逆置换

1 介绍 给定一个排列 p,它的逆置换(inverse permutation)是一个排列 invp,满足 invp[p[i]] i 和 p[invp[i]] i 对所有 i 成立。 2 python实现 计算一个排列的逆排列给定一个排列 p,它的逆排列是一个排列 invp&…

PyTorch中的intrusive_ptr

PyTorch中的intrusive_ptr 前言 intrusive_ptr與unique_ptr,shared_ptr等一樣,都是smart pointer。但是intrusive_ptr比較特別,它所指向的物件類型必須繼承自intrusive_ptr_target,而intrusive_ptr_target必須實現引用計數相關的…

OpenCV 相机相关函数

一、变换参数矩阵的求解 1. 计算三个二维点对之间的仿射变换矩阵:getAffineTransform() 2. 计算多个二维点对之间的最优放射变换矩阵(误差最小准则):estimateRigidTransform();或者findHomography(); 3. 计算四个二维点对之间的…

软考 系统架构设计师系列知识点之设计模式(7)

接前一篇文章:软考 系统架构设计师系列知识点之设计模式(6) 所属章节: 老版(第一版)教材 第7章. 设计模式 第2节. 设计模式实例 相关试题 3. 某公司欲开发一套窗体图形界面类库。该类库需要包含若干预定…

针对多分类问题,使用深度学习--Keras进行微调提升性能

前面的文章对二分类问题用Keras进行了Fine-tune,使得模型的准确率进一步提升,此处对于多分类问题,尝试使用Fine-tune来提升性能。 1. 准备数据集 为了演示,本次选用了博文keras系列︱图像多分类训练与利用bottleneck features进行微调(三)中提到的数据集,原始的数据集…

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

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

如何进行内存对齐和内存访问优化?

内存对齐和内存访问优化是C语言编程中的重要主题,对于提高程序性能和可移植性非常关键。在本文中,我们将深入探讨内存对齐和内存访问优化的概念、原理和实际应用。 什么是内存对齐? 内存对齐是一种指定数据在内存中存储位置的规则&#xff…

轮转数组(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 的功能非常…