保姆级阿里云ESC服务器安装nodejs和服务器node服务管理工具PM2安装使用

一、安装Node到服务器

1. 创建node文件夹

默认 /opt 下边 /opt/node
也可建到其他地方,如/usr/local/node 等
创建后切换到文件夹下
cd /opt/node

cd /opt/node

2. 下载node并解压

使用命令下载node
wget https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz

wget https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz

或者到node官网下载tar包到本地然后上传到node所在位置
上传 scp命令为
scp node-v18.12.0-linux-x64.tar.xz root@0.0.0.0:/opt/node

scp node-v18.12.0-linux-x64.tar.xz root@0.0.0.0:/opt/node

也可使用FTP工具手动上传

SCP命令的基本用法
scp [option] /path/to/source/file user@server-ip:/path/to/destination/directory
/path/to/source/file – 这是打算复制到远程主机的源文件。
user@server-IP: – 这是远程系统的用户名和 IP 地址。请注意 IP 地址后面加冒号":"。
/path/to/destination/directory – 这是文件将复制到的远程系统上的目标目录。

scp命令常用的几个选项
-C - 这会在复制过程中压缩文件或目录。
-P - 如果默认 SSH 端口不是 22,则使用此选项指定 SSH 端口。
-r - 此选项递归复制目录及其内容。
-p - 保留文件的访问和修改时间。

3. 解压文件

解压命令:
tar -c 创建包, –x 释放包, -v 显示命令过程, –z 代表压缩包, -f 表示文件名
使用:
tar xvf node-v18.12.0-linux-x64.tar.xz

tar xvf node-v18.12.0-linux-x64.tar.xz

注意:需要在压缩包所在位置,按照上方操作默认为/opt/node

4. 创建软链接,使node和npm命令全局有效

1. 命令创建软链接(建议采用)

创建npm
ln -s /opt/node/node-v18.12.0-linux-x64/bin/npm /usr/local/bin/npm

ln -s /opt/node/node-v18.12.0-linux-x64/bin/npm /usr/local/bin/npm

创建node
ln -s /opt/node/node-v18.12.0-linux-x64/bin/node /usr/local/bin/node

ln -s /opt/node/node-v18.12.0-linux-x64/bin/node /usr/local/bin/node

创建完成后校验node和npm
node -v npm -v

node -v
npm -v

如需yarn或pnpm可全局安装后,用命令配置软链接
安装yarn(pnpm操作相同)
npm install yarn -g

npm install yarn -g

配置软链接
ln -s /opt/node/node-v18.12.0-linux-x64/bin/yarn /usr/local/bin/yarn

ln -s /opt/node/node-v18.12.0-linux-x64/bin/yarn /usr/local/bin/yarn

校验yarn
yarn -v

yarn -v

看到这里应该发现了命令的规则,后边安装pnpm或者其他将命令中yarn改为对应的即可
ln -s 源文件 目标文件

ln -s 源文件 目标文件

目标文件一般为 /usr/local/bin 下边 如yarn为 /usr/local/bin/yarn

2. 手动配置软链接

使用vi/vim工具打开配置文件进行编辑,如果对下方命令比较生疏的情况,建议采用第一种命令方式
打开配置文件命令

vi  /etc/profile

增加node配置信息(注意空格和标点符号比较容易出错的地方)

# node config
export NODE_HOME="/opt/node/node-v18.12.0-linux-x64"
export PATH="$NODE_HOME/bin:$PATH"

配置完成后保存后执行命令
source /etc/profile

source /etc/profile

执行命令可如果有报错可以百度,也可留言看到后会尽快回复

配置完成后校验npm和node命令
node -v npm -v

node -v
npm -v

手动配置软链接的方式比较通用,后续使用npm全局安装yarn或pnpm也可直接使用

其他方式

安装nvm后使用nvm安装node,这也是一种安装方式,但是服务器中建议采用第一种方式,这一种就不做多阐述了。

二、PM2配置在服务器中关闭窗口能继续正常运行的Node环境

在整理前边的步骤后,感觉还是把这一部分加上,不然就像是有了子弹没有枪,要一直打开着窗口不敢动了。
为了处理Nodejs在服务器中运行后,关闭窗口就断掉的问题,我们需要引入一个工具pm2。

PM2 是一个守护进程管理工具,帮助您管理和守护您的应用程序。它以简单直观的 C​​LI 命令行方式进行工作。

这是官网的描述,也可以到官网文档了解更多,pm2中文文档连接:https://pm2.fenxianglu.cn/docs/start, pm2英文文档连接:https://pm2.keymetrics.io/docs/usage/quick-start/

本文简单描述安装以及运行的简单步骤,复杂的或者想深入了解的还是到文档里全一点。

1. 安装pm2

在上边安装node后的基础上,直接采用node命令进行安装
npm install pm2@latest -g

npm install pm2@latest -g
# or
yarn global add pm2

2. 创建pm2软链接

这里跟上边node配置一样,有命令创建和手动创建,如果上边node采用手动创建,这里就不需要配置了直接生效,如果是命令配置的这里需要运行下边的命令
ln -s /opt/node/node-v18.12.0-linux-x64/bin/pm2 /usr/local/bin/pm2

ln -s /opt/node/node-v18.12.0-linux-x64/bin/pm2 /usr/local/bin/pm2

创建完成后运行下边命令校验
pm2 list

pm2 list

操作后会显示如下
在这里插入图片描述

3. 用pm2运行npm/yarn/pnpm服务

这个可以直接运行Nextjs、Nuxtjs或默认nodejs等服务
pm2 start -n demo npm – run dev

pm2 start -n demo npm -- run dev

警告:上面这种方式仅适用到 linux 系统,window 系统无效且报错
windows用pm2运行的方式,这里不做介绍,有用到的同学可以移步到文档中查看 pm2启动-npmyarnpnpm-应用

demo 为自己启动项目的唯一标识,后边操作暂停、删除、重启等操作的name
项目的运行也要在对应项目中进行,比如项目为/opt/test-app就要再其路径下运行(个人操作习惯),暂停、删除等操作则在全局

4. pm2管理应用

上边介绍的为安装和运行,运行pm2要在对应的项目中,但是pm2对应用的管理则在全局,根据自己运行时候所定的唯一标识name进行操作,管理应用的操作如下:
$ pm2 restart app_name 重启app_name 项目
$ pm2 reload app_name 重载app_name 项目
$ pm2 stop app_name 停止app_name 项目
$ pm2 delete app_name 删除app_name项目

pm2 restart app_name
pm2 reload app_name
pm2 stop app_name
pm2 delete app_name
pm2 restart和pm2 reload 区别

pm2 restart 为重启项目,该命令会停止Node.js应用程序的所有进程,并重新启动它们
如果你的应用程序正在处理请求,它们将被中断,直到新的进程启动并开始处理请求。这种方式可能会导致一些请求失败或者丢失,但是可以确保所有进程都使用最新的代码运行。
pm2 reload为重载项目,该命令会在不停止Node.js应用程序的情况下重新加载代码
如果你的应用程序正在处理请求,它将继续处理这些请求,而不会中断服务。pm2 reload命令会重新启动Node.js应用程序的所有进程,并在重新加载代码后将请求路由到新的进程。这种方式可以避免中断服务,但是可能会导致一些请求失败或者丢失。

虽然restart和reload都可以用来作为代码更新操作,但是reload可以做到0秒宕机加载新的代码,restart则是重新启动,生产中经常采用reload进行代码更新的操作。

5. 其他pm2命令

列出应用程序
pm2 list
查看日志
pm2 logs
指定行数日志

例如200行

pm2 logs --lines 200

最后,以上就是pm2常用的操作,基础的node安装和pm2运行项目按照上边的步骤就都没问题了,如果需要什么负载均衡、docker集成、监控等操作的,可以到pm2官方文档中查看,如果本文对您有所帮助欢迎点赞留言,如果有什么疑问也可留言,在看到后会第一时间回复。

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

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

相关文章

PLC单按钮启停算法汇总

单按钮启停在三菱PLC里可以通过简单的取反指令"ALT"实现,西门子PLC如何实现ALT指令,请参考下面文章链接,这篇博客我们汇总常用的单按钮启停实现方法,希望大家读了本篇博客后有所收获。 博途ALT指令 博途S7-1200/1500PLC 取反指令(ALT)-CSDN博客SMART PLC的ALT指…

从0开始学云计算之服务器:服务的定义,特点,应用场景,分类

服务器定义 服务器是计算机的一种。它比普通计算机运行速度更快、负载更高且价格更高。 服务器的英文名称为“Server”,是指在网络上提供各种服务的高性能计算机。作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为x络的灵魂。 …

UDP网络通信反复发收

package UDP2;import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner;/* * 完成UDP 通信快速入门 实现发1收1*/ public class Client {public static void main(String[] args) throws Exception{// …

2023-1024‍节日(内含表白代码)

文章目录 一、前言二、代码实现三、动态展示四、总结 一、前言 1024可以是计算机操作系统的进制单位,也可以是🧑‍💻程序员们的特殊纪念日。 每年10月24日被行业认定为“程序员节”。 今天,正是一年一度的“1024程序员节”在此纪…

CVE-2022-41082:Microsoft Exchange 反序列化类型混淆 RCE 漏洞简单分析

简介 漏洞编号:CVE-2022-41082漏洞类型:类型混淆软件名称:Microsoft Exchange模块名称:Exchange 服务 powershell 接口模块历史漏洞:易受攻击的流行软件影响的版本:Microsoft Exchange Server 2019 2016 2…

【Git】升级MacOS系统,git命令无法使用

终端执行git命令报错 xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun安装这个东东,?需要42小时 最终解决: 下载安装 https…

【OpenCV实现鼠标绘图,轨迹栏做调色板,图像的基本操作】

文章目录 鼠标绘图轨迹栏做调色板图像的基本操作 鼠标绘图 在OpenCV中操作鼠标事件 函数:cv.setMouseCallback() 目的是在鼠标双击的地方画一个圆。首先,我们需要创建一个鼠标回调函数,该函数会在鼠标事件发生时执行。鼠标事件包括左键按下…

python基础语法(4)

基础语法 前言文件文件是什么文件路径文件操作1.打开文件2. 关闭文件3.写文件4. 读文件5.上下文管理器 库使用库标准库第三方库 前言 本文基于pycharm编译器,也可以使用Anaconda 里的编译器,将讲解一些python的一些基础语法知识,是对上篇文章…

Kubernetes技术与架构-网络 3

Kubernetes集群支持为Pod或者Service申请IPV4或者IPV6的地址空间。 kube-apiserver --service-cluster-ip-range<IPv4 CIDR>,<IPv6 CIDR> kube-controller-manager --cluster-cidr<IPv4 CIDR>,<IPv6 CIDR> --service-cluster-ip-range<IPv4 CI…

论坛介绍|COSCon'23 开源百宝箱(T)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于 10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&a…

proxmox pve /dev/mapper/pve-root扩容

vgs3 pvs4 vgs5 lvs6 lvremove /dev/pve/data8 lvresize -l 100%FREE /dev/pve/root9 resize2fs /dev/mapper/pve-root 10 history

安卓 实现60s倒计时的CountDownTimer(小坑)

安卓 实现60s倒计时的CountDownTimer&#xff08;小坑&#xff09; 前言一、CountDownTimer 是什么&#xff1f;二、代码示例1.使用2.小坑的点误差及时取消 总结 前言 前段时间写倒计时没有用线程&#xff0c;想换一种实现方式结果踩了个小坑&#xff0c;特此记录。 一、Count…

Rancher部署K8S集群

一、介绍 随着容器的普及和Kubernetes 的日渐成熟&#xff0c;企业内部运行多个Kubernetes 集群已变得颇为常见&#xff0c;然而部署kubernetes集群的方式也多样化&#xff0c;二进制部署、rancher、kubeadm、minikube等。然而本篇文章主要讲解的是如何使用rancher快速部署一个…

Linux笔记之diff工具软件P4merge的使用

Linux笔记之diff工具软件P4merge的使用 code review! 文章目录 Linux笔记之diff工具软件P4merge的使用1.安装和配置2.使用&#xff1a;p4merge a.cc b.cc3.配置git 参考博文: Ubuntu Git可视化比较工具 P4Merge 的安装/配置及使用 1.安装和配置 $ wget https://cdist2.per…

Linux简单安装ffmpeg 实现用PHP压缩音频

一、下载安装 1、官方下载地址&#xff1a;Download FFmpeg 2、下载完上传到服务器然 然后解压就算安装完成了 tar -xf ffmpeg-git-amd64-static.tar.xz 3、然后配置一下全局变量&#xff08;当然也可以不用配置 使用的时候带上文件路径就行&#xff09; cd /usr/bin ln -s…

【Gensim概念】02/3 NLP玩转 word2vec

第二部分 句法 六、句法模型&#xff08;类对象和参数&#xff09; 6.1 数据集的句子查看 classgensim.models.word2vec.BrownCorpus(dirname) Bases: object 迭代句子 Brown corpus (part of NLTK data). 6.2 数据集的句子和gram classgensim.models.word2vec.Heapitem(c…

Web APIs——事件监听以及案例

1、事件监听 什么是事件&#xff1f; 事件是在编程时系统内发生的动作或者发生的事情 比如用户在网页上单击一个按钮 什么是事件监听&#xff1f; 就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即调用一个函数做出响应&#xff0c;也称为绑定事…

pymavlink简单使用

环境 windows10 python3.11 pymavlink2.4.40 工具 虚拟串口工具 Virtual Serial Port Driver 6.9 串口/网络调试助手 sscom5.13.1.exe 串口通信 虚拟串口 COM1, COM2 调试助手连接COM2 pymavlink连接COM1 from pymavlink import mavutil import timeconnect mavut…

UE4 Ultradynamicsky进行地面交互

第一步&#xff1a; 找到地面材质&#xff0c;进入地面材质 找到该节点 找到之前本该连在这里的&#xff0c;现在连到这个节点上&#xff0c;然后把这个节点的输出连到材质输出节点上 新建一个物理材质 然后给过来 找到Ultra_Dynamic_Weather&#xff0c;把Enable Dynamic Lan…

【ArcGIS模型构建器】03:多个shp批量按属性分割(多个县区批量提取乡镇)

文章目录 一、数据预览二、模型构建三、保存模型一、数据预览 加载实验数据: 本试验实现将两个县区的数据分割为乡镇数据。 二、模型构建 1. 添加数据文件夹 将县区数据所在的根目录文件夹拖进模型。 2. 添加要素类迭代器 插入→迭代器→要素类。 用连接工具,将数据文件…