如何将nodejs项目程序部署到阿里云服务器上

将nodejs项目程序部署到阿里云服务器上

  • 一、概述
  • 二、具体步骤
    • 1、拥有自己的服务器
    • 2、下载Xshell
    • 3、 oneinstack配置web环境
    • 4、 XShell连接远程主机
    • 5、更新系统软件
    • 6、在服务器上安装node环境
    • 7、部署项目到服务器上
    • 8、安装pm2并启动nodejs项目
  • 三、快捷指令
    • 1、linux的常用命令
    • 2、pm2的常用命令

平常做完项目都很少自己部署,但是感觉作为一个开发者不会部署有点过不去,于是询问了身边的小伙伴一波,做出以下总结。

一、概述

本文将从以下三个个方面来讲解:
配置oneinstack
将nodejs项目上传至服务器
使用pm2运行nodejs项目

二、具体步骤

1、拥有自己的服务器

先到阿里云买一台学生机,买完以后记得到控制台重置密码,密码设置的尽可能的复杂;

2、下载Xshell

之后需要到Xshell官方网站下载XShell;

3、 oneinstack配置web环境

用oneinstack配web环境,具体配置如下:
在这里插入图片描述

4、 XShell连接远程主机

配置完以后,XShell连接远程主机;
在这里插入图片描述

在这里插入图片描述

5、更新系统软件

连接完成之后, XShell 控制台上的小红点会变成小绿点,显示小绿点即表示连接成功,如果还是小红点则说明连接失败,需重返检查下原来的配置是否有错误,及时纠正。
成功连接后, XShell 控制台输入yum update -y来更新系统软件,更新完成之后,将第三步 oneinstack 最底部生成的安装命令粘贴继续粘贴进控制台,稍等片刻,将完成重置和登录。

6、在服务器上安装node环境

登录之后,我们需要在服务器安装一个node环境。这里需要注意的一点是,如果需求没有很大的话,用命令yum install -y nodejsXShell 控制台即可直接安装,但是 XShell 里面的版本是在比较低,比如我安装的时候是 10.21.0 ,实际上 node 已经出到14版本了,所以建议是手动安装。接下来讲解在服务器手动安装最新版本nodejs环境的做法:

首先需要在本地下载nodejs最新版本,在node官网下载服务器能够运行的版本,因为我的是centOS系统,选择linux Binaries(x64)。

PS :不要像我一样傻以为是在本地安装一个 node 环境,本地的 node 环境和远程的 node 环境完全不是同一个东西。

在这里插入图片描述


在本地下载完成后,需要将安装包(即压缩包文件)复制到服务器里面,如何复制呢,这个根据个人需求传到服务器对应的路径下。( windows 系统推荐使用winscp软件或者Xftp软件进行上传,速度很快)

上传后,在服务端进行解压,这里需要用命令行在XShell里面进行解压。(注意:node-v14.15.4-linux-x64.tar.xz是你node安装包的名字)
解压思路是:需要先将xz文件解压成tar文件,之后将tar文件解压成文件夹完成解压

xz -d node-v14.15.4-linux-x64.tar.xz
tar -xvf node-v14.15.4-linux-x64.tar

解压后,将node文件夹下的所有内容复制到/usr/local/node,配置环境变量。这里路径/usr/local/node下的node文件需要新建,用mkdir -p 路径名可以直接建立路径下的文件夹。

配置环境变量。linux的环境变量文件是/etc/profile,可执行文件在/usr/local/node/bin里,所以要把这个路径加入到这个环境变量文件中。

vi /etc/profile

输入命令后进入界面,再输入i进入编辑模式,PageDown到最后一行,不换行,添加环境变量。

: /usr/local/node/bin

保存退出。

ESC
Shift zz

⑦保存退出后执行如下命令,将环境变量生效。

source /etc/profile

装完之后node -v查看版本号是否一一对应。

7、部署项目到服务器上

安装完 node 环境,接下来需要把我们的项目部署到服务器上。(这里介绍从 git 上拉项目到服务器上)
①先到 /home 下面创建一个属于你自己用户名的文件夹,比如名字为 monday ,那么就会有 /home/monday ,之后把自己的项目文件克隆到monday文件下,为 /home/monday/project-name
②进入自己用户名的文件夹,git clone 你的项目地址,之后 npm i
③上传 nodejs 项目后,配置数据库。

8、安装pm2并启动nodejs项目

使用npm全局安装pm2:npm install pm2 -g
进入nodejs项目目录,我把项目上传到了 /home/monday/project-name ,所以,输入cd /home/monday/project-name 的项目目录回车,进入项目目录启动nodejs项目,看个人对自己项目的设计来决定启动方式,我的是npm run prd
检查nodejs项目是否启动:输入pm2 list回车,如果出现下面的列表,就说明 nodejs 项目已经顺利在后台建立了服务。
在这里插入图片描述
至此,我们就把服务启动起来啦!

三、快捷指令

1、linux的常用命令

  • rm -rf 目录 删除目录
  • cp -R conf.example conf 复制conf.example(已存在文件)为conf(未存在)
  • curl http://www.linux.com 用于测试一台服务器是否可以到达一个网站
  • ①yum install screen -y;②screen -S lnmp 用于解决连接非正常中断,重新连接会话

2、pm2的常用命令

  • pm2 list——查看进程列表
  • pm2 restart 0——重启服务
  • pm2 stop 0——停止服务
  • pm2 delete 0——停止后要对进程进行删除
  • pm2 info 0——可以查看当前进程的所有信息以及一些录像
  • pm2 log 0——查看日志
  • pm2 monit——监控进程列表

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

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

相关文章

101. 对称二叉树023(BFS)

一:题目 二:上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullpt…

中移动完成透镜天线远距覆盖和降本增效试点

日前,中国移动研究院在官微上正式发布了《新型透镜天线进行首次高铁覆盖实验》一文。中国移动研究院、中国移动甘肃公司与西安海天天线科技股份有限公司联合开展的人工介质圆柱透镜天线在高铁、高速等线状纵深领域的长距覆盖取得突破性进展。两年以来,铁…

基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)

1、安装软件 编程工具:Notepad 运行环境:phpEnv 2、用phpEnv建立本地运行环境 (1)官方下载phpEnv,运行phpEnv,启动服务。服务启动之后,apache和mysql变绿。如下图所示: &#xff0…

在idae中为什么用Module创建一个新的Maven项目的时候会被卡死

一:问题描述 然后就会卡死, 二:问题解决 我们会发现这里的路径是有问题的,idea自带的maven会卡死我们,因为下载jar包的速度慢的惊人 将其改为我们自己maven路径,下载速度会很快,便不会出现卡死的现象&a…

ASP.NET Core Blazor Webassembly 之 数据绑定

上一次我们学习了Blazor组件相关的知识(Asp.net Core Blazor Webassembly - 组件)。这次继续学习Blazor的数据绑定相关的知识。当代前端框架都离不开数据绑定技术。数据绑定技术以数据为主导来驱动UI界面,用户对数据的修改会实时提现在UI上&a…

PHP做二次开发:本机安装ThinkCMF系统

使用工具:phpEnv、TortoiseGit 具体步骤: 1.获取thinkcmf源代码 2.修改Hosts文件设置虚拟域名指向本机 3.配置apache建立本地站点 4.建立数据库 5.访问本地站点开始安装 第一步:获取thinkcmf源代码 1.打开浏览器访问gitee.com,搜…

107. 二叉树的层序遍历 II and 102. 二叉树的层序遍历 023(BFS模板题打两道)

一:题目 二:上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullpt…

PHP做二次开发:ThinkCMF门户应用安装

使用工具:phpEnv 具体步骤: 1.获取门户应用portal源码 2.安装portal代码 3.执行portal数据库文件 4.安装并启用前台模板 5.导入后台管理菜单 第一步:获取门户应用portal源码 1.打开官方网站http://kancloud.cn/thinkcmf/faq/1005840&#xf…

vector的逆序输出(神奇的vector)

一&#xff1a;直接上代码&#xff08;逆序输出&#xff09; #include<bits/stdc.h> using namespace std; int main(){vector<int> v;for(int i 0; i < 5; i){v.push_back(i); }reverse(v.begin(),v.end());for(int i 0; i < 5; i){cout << v[i] &…

初识ABP vNext(6):vue+ABP实现国际化

点击上方蓝字"小黑在哪里"关注我吧语言选项语言切换注意前言上一篇介绍了ABP扩展实体&#xff0c;并且在前端部分新增了身份认证管理和租户管理的菜单&#xff0c;在实现这两个功能模块前&#xff0c;先来解决一下界面文字国际化的问题。开始国际化&#xff08;简称 …

『软件工程1』详解软件是什么

软件基本概念一、什么是产品二、软件的双重角色三、软件的涵义及特征四、软件应用五、软件危机六、软件神话一、什么是产品 1、从用户的角度 产品实际上就是信息&#xff0c;以某种方式使得用户世界更加美好 2、从软件工程师的角度 产品实际上就是软件 二、软件的双重角色 1…

200. 岛屿数量025(BFS详解)

二&#xff1a;思路 1.这里我们使用的是BFS(广度优先搜索遍历) 2.当我们遇到一个岛屿&#xff08;‘1’&#xff09;的时候&#xff0c;我们就对其的左右四边进行广度遍历 并且标记已经访问过的结点。 3.那么我们每次遇到一个1开始广度遍历那就证明我们发现了一个岛 三:上码 …

进击吧! Blazor 第一期

Blazor 是一个 Web UI 框架&#xff0c;可通过 WebAssembly 在任意浏览器中运行 .Net 。Blazor 旨在简化快速的单页面 .Net 浏览器应用的构建过程&#xff0c;它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术&#xff0c;但它使用 C&#xff03;语言和 Razor 语法代替 JavaScrip…

『软件工程2』详解软件工程和软件过程模型

文章目录一、软件工程的定义1、Fritz Bauer在NATO上给出的定义2、Barry Boehm3、IEEE在软件工程术语汇编中的定义二、软件工程的层次1、软件工程三个要素2、软件工程的层次——图解3、软件工程的层次——逐一分析三、软件过程的三个阶段1、定义阶段——“做什么”2、开发阶段—…

利用vector实现一对一(pair<int,int>)

一&#xff1a;前言 我们知道有一对一的STL容器有map容器&#xff0c;但是map容器中的按键值排序和不允许由重复的元素&#xff0c;现在&#xff0c;我们可以利用 vector<pair<int,int> >来实现一对一&#xff0c;但其没有排序可以允许有重复的元素 二&#xff1…

没有docker,谈什么微服务架构?

新的互联网技术时代已经来临了&#xff0c;容器、Kubernetes、DevOps、微服务、云原生代表着技术前进的方向&#xff0c;.NET Core微服务Docker&#xff0c;亦是当下最优解决方案(低调点&#xff0c;几乎没有之一)&#xff01;有点自夸&#xff1f;作为专注于.NET领域十多年的老…

『软件工程3』你应该知道的三种原型实现模型:抛弃式、演化式、增量式

三种原型实现模型一、抛弃式原型开发二、演化式原型开发三、增量式原型开发一、抛弃式原型开发 1、定义&#xff1a;验证和澄清系统的需求描述&#xff0c;重新构造系统。 2、流程图 3、典型例子 开发者与客户进行沟通交流&#xff0c;之后获取到客户的需求&#xff0c;于是…

『软件工程4』一文了解软件项目管理中的4P

软件项目管理中的4P一、项目管理的重要性和定义1、重要性&#xff08;两个阶段&#xff09;2、软件项目管理的定义二、管理四要素4P1、管理的四要素(4P)2、软件项目中影响最终结果的要素3、项目管理关心的问题三、项目参与者类型(people)四、项目小组结构(people)1、项目的三种…

8-1 回溯法实验报告 (15 分)(思路+详解)

一&#xff1a;题目 给定k个正整数&#xff0c;用算术运算符&#xff0c;-&#xff0c;&#xff0c;/ 将这k个正整数连接起来&#xff0c;是最终的得数恰为m。 如果有多组满足要求的表达式&#xff0c;只要输出一组&#xff0c;每一步算式用分号隔开。 如果无法得到m&#xff…

TypeScript 4.0 发布

喜欢就关注我们吧&#xff01;整体看来&#xff0c;此版本在兼容性方面没有特别大的变化。因为 TypeScript 团队表示新版本继续使用与过去版本相似的版本控制模型&#xff0c;可将 4.0 视作 3.9 的延续升级版本。而且他们也一直在追求不牺牲主要灵活性的情况下&#xff0c;提供…