【自用】CentOS7.6 安装 node-RED 4.0.2 教程(各种坑都摆脱的版本)

步骤总览

1.下载安装 nodejs
2.安装并配置 node-RED
3.重启服务器,验证 node-RED 是否安装 and 配置成功

一、下载安装 nodejs

1.下载 nodejs 18

为什么要下载 nodejs 18 呢?
因为 node-RED 4.0.1 支持的最低 nodejs 版本就是 nodejs 18。

当然了,我选择下载 nodejs 18,如果你想要更高的版本…
我不确定你是否能和我使用一样的步骤进行配置,因为后续坑太多了,希望你能挺住(现在是凌晨4:03分)

1.1 下载方式1

网页下载,然后你要用 Xftp 传进 云服务器里面
下载地址:https://nodejs.org/dist/
nodejs-v18.20.3下载地址:https://nodejs.org/dist/v18.20.3/
把文件放在云服务器的这个目录下面: /usr/local

在这里插入图片描述

1.2 下载方式2

云服务器直接下载

cd /usr/local
wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-x64.tar.gz
2.解压,安装,重命名,创建软连接()

如果你下载的不是nodejs18,换成你自己的版本。

软连接用于免配置环境变量(usr/local/ 是系统默认配置了环境变量的地方),其实可以不用
因为我们本来就在 /usr/local 目录下,但是这样保险一些

tar -xzvf node-v18.20.3-linux-x64.tar.gz
mv node-v18.20.3-linux-x64 nodejs
ls -a
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
ln -s /usr/local/nodejs/bin/node /usr/local/bin/
3.权限大提升!
chmod 777 -R /usr/local/bin/
4.验证安装(坏消息,会报错;好消息,我提供了解决办法)
node -v
npm -v

这一步,如果你是 centos7,且下载 nodejs18,几乎必报错,错误如下 ↓

configure: error: 
*** These critical programs are missing or too old: make bison compiler
*** Check the INSTALL file for required versions.

为解决此报错,我写了教程。
当然,如果上面的版本查看指令没出错,就不用看教程了。

看教程前的提醒:本篇教程也是我写的,里面还嵌套了 2 个教程(没错就是这么麻烦,都是我走过的坑)
怕你到时候改懵了找不回来,先收藏一下我的这篇博客吧。

教程地址:https://blog.csdn.net/qq_43768851/article/details/140112465?spm=1001.2014.3001.5502

5.欢迎回来。现在,默认你看了教程,已经成功安装了 nodejs18 ↓

在这里插入图片描述


二、安装并配置 node-RED

1.修改 npm 镜像源 -> taobao镜像
npm config set registry http://registry.npm.taobao.org/
2.设置使用 HTTPS 通讯时不检测 SSL 证书有效性
npm config set strict-ssl false
3.安装 node-RED

执行命令:

npm install -g --unsafe-perm node-red

如果安装没有报错,你会看到以下输出,证明安装成功:

在这里插入图片描述

3.查看路径是否正确,是否安装成功

看一下我的图片,如果你按照我说的做,我们现在在 /usr/local 运行上面的安装命令,
node-red 4.0.2 可执行文件将被安装到 /usr/local/nodejs/bin 目录下(包位置在 /usr/local/nodejs/lib/node_modules)

pwd
npm list -g --depth=0

在这里插入图片描述
在这里插入图片描述

4.为可执行文件设置软连接,免配环境变量
ln -s /usr/local/nodejs/bin/node-red /usr/local/bin/node-red# 并确定软连接是否正确
ls -l /usr/local/bin/node-red

在这里插入图片描述

5.node-RED,启动!!!

welcome to node-RED!
看到类似下面的界面就算是配置成功

node-red

在这里插入图片描述

6.启动防火墙,打开 1880 端口(node-RED默认端口号),并重启防火墙

!!警告,虽然使用下面的命令能够添加 安全组允许通过的端口,但是,你需要在云服务器管理台上使用 UI 界面 再操作一次,只用命令有时候不会生效!!

此时,node-RED 服务已启动,我们暂时关掉它再执行下面的命令(ctrl + c)

systemctl start firewalld.service
firewall-cmd --add-port=1880/tcp --permanent
firewall-cmd --reload

在这里插入图片描述

7.创建 node-RED 数据存储目录,并赋权

我们选择在 /var/lib 目录下创建它,因为 /var/lib 是大家存放持久性数据的地方

cd /var/lib/
sudo mkdir -p /var/lib/node_red_data
ls -a# 赋予权限:当前用户 和 当前用户组 可访问
# 如果出现一些权限问题,请尝试:sudo chmod -R 777 /var/lib/node-red
sudo chown -R $USER:$GROUP /var/lib/node_red_data

在这里插入图片描述

8.配置 node-red 相关参数(配置 settings.js 文件)
cd ~
ls -a
cd .node-red/
ls -a
vim settings.js

在这里插入图片描述

9.更改 settings.js ,node-RED 配置文件

更改的地方一共就那么几个,挨个来:

9.1 设置常量 node_red_data_path,用于承载 node-red 数据目录

如果你把目录放在了别处,叫别的名,就把下面的命令里的地址自己改成你的目录吧

const node_red_data_path = '/var/lib/node_red_data';

在这里插入图片描述

9.2 设置用户目录

请注意前后文定位如图
在这里插入图片描述

userDir: node_red_data_path + '.node-red/',
9.3 设置节点目录

请注意前后文定位如图

在这里插入图片描述

nodesDir: node_red_data_path + '.node-red/nodes',
9.4 设置 httpStatic

启用并配置 httpStatic 参数,能够让 node-RED 提供一个静态服务器,便于我们进行二次开发。
允许我们在特定路径下提供静态文件。这些文件可以是 HTML、CSS、JavaScript、图像等 -> 供你的 Node-RED 流程或外部客户端使用。

更改位置前后文定位(往下翻就行):

在这里插入图片描述

httpStatic: node_red_data_path + 'nol/node-red-static/', //single static source
10.使用 pm2 进行 nodejs 进程管理

PM2是个什么玩意 ↓

在这里插入图片描述

全局安装:

npm install pm2 -gd

创建软连接免配环境变量:

ln -s /usr/local/nodejs/bin/pm2 /usr/local/bin/

查看安装是否成功:

pm2 -v

通过 pm2 启动 node-red:

pm2 start node-red# 关闭命令 ↓
# pm2 stop node-red

查看 node-red 的运行情况:
请注意,这一步应该多运行几次,连续查看10秒,
如果说 node-red 配置错误,那么10s后进程就挂了(哪怕一开始是 online 的状态)

pm2 ls

设置开机启动

pm2 startup

在这里插入图片描述
保存当前正在运行的应用到 /root/.pm2/dump.pm2 目录下,开机自动启动(需要 node-red 正在运行才行喔)

pm2 save

在这里插入图片描述
开启服务,并查看服务开启状态(running):

systemctl start pm2-root.service

在这里插入图片描述

11.配置完成,重启服务器
reboot
12.重启完成,xshell 连接成功之后,等待半分钟,运行:
systemctl status pm2-root.service
pm2 status

输出应该类似如下:

在这里插入图片描述

13.完成

至此,node-RED 配置完成。

感谢 博客主 黎陌MLing 的博客:
https://blog.csdn.net/weixin_44462773/article/details/131509185

这个版本是避坑和包含解决办法的原版改良版本,大部分内容来源于 ↑

三、后续(待更新)

1.x
2.x

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

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

相关文章

实在智能对话钉钉:宜搭+实在Agent,AI时代的工作方式

比起一个需求需要等产品、技术排期,越来越多的人开始追求把自己武装成「全能战士」,通过低代码工具一搭,一个高效的工作平台便产生了。 宜搭是钉钉自研的低代码应用构建平台,无论是专业开发者还是没有代码基础的业务人员&#xf…

不知几DAY的Symfony---RCE复现

感谢红队大佬老流氓的供稿,此篇文章是针对Symfony框架的一个RCE漏洞复现 ​框架简介 Symfony是一个开源的PHP Web框架,它现在是许多知名 CMS 的核心组件,例如Drupal、Joomla!、eZPlatform(以前称为 eZPublish)或Bolt。…

和鲸“101”计划领航!和鲸科技携手北中医,共话医学+AI 实验室建设及创新人才培养

为进一步加强医学院校大数据管理与应用、信息管理与信息系统,医学信息工程等专业建设,交流实验室建设、专业发展与人才培养经验,6 月 22 日,由北京中医药大学(简称“北中医”)主办,上海和今信息…

短剧系统开发:如何让你的创意变成现实

短剧系统开发是一个将创意转化为现实的过程,它涉及多个方面,包括需求分析、系统设计、开发环境搭建、前后端开发、测试与发布等。 1. 需求分析 (1)明确目标:首先,明确短剧系统的目标和定位,包括…

APP逆向 day9 安卓开发基础1

一.前言 app逆向当然要学安卓基础啦!今天我们来教安卓基础当然,安卓基础不会教的很多,比java还要少,还是那句话,了解就好。 二.安卓环境搭建 2.1 安卓介绍 如果做安卓开发 需要会java代码安卓SDK(安卓提供的内置…

Hack The Box-Blazorized

总体思路 Blazor JWT->SPN劫持->登录脚本劫持->DCSync 信息收集&端口利用 nmap -sSVC blazorized.htbStarting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-01 02:37 EDT Nmap scan report for blazorized.htb (10.10.11.22) Host is up (0.30s latency). N…

编译调试swift5.7源码

环境: 电脑:apple m1 pro系统:macOS13Xcode: 14.2Cmake: 3.25.1Ninja: 1.11.1sccache: 0.3.3python: 3.10 (如果你的mac不是这个版本,可以通过 brew install python3.10下载,然后看这篇文章切换到该python版本)swift代…

RK3568驱动指南|第十五篇 I2C-第176章 通过逻辑分析仪认识I2C波形

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

甄选版“论软件系统架构评估”,软考高级论文,系统架构设计师论文

论文真题 对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,…

mac软件卸载后的残留文件删除 mac如何卸载应用程序

很多人都不知道,mac使用系统方式卸载后会有残留文件未被删除,久而久之就会占用大量的磁盘空间。今天小编就来教大家如何删除mac软件卸载后的残留文件,如果你想不留痕迹的删除,mac又该如何正确卸载应用程序,本文将一一为…

Python 获取字典中的值(八种方法)

Python 字典(dictionary)是一种可变容器模型,可以存储任意数量的任意类型的数据。字典通常用于存储键值对,每个元素由一个键(key)和一个值(value)组成,键和值之间用冒号分隔。 以下是 Python 字典取值的几…

嵌入式软件工程应该学些什么?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!毕业后相当嵌入式软件工程…

从理论到实践的指南:企业如何建立有效的EHS管理体系?

企业如何建立有效的EHS管理体系?对于任何企业,没有安全就谈不上稳定生产和经济效益,因此建立EHS管理体系是解决企业长期追求的建立安全管理长效机制的最有效手段。良好的体系运转,可以最大限度地减少事故发生。 这篇借着开头这个…

C++ (第二天下午---面向对象之类与对象)

一、面向过程与面向对象 1、面向过程 面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。 举个例子,下五子棋,面向过程…

LLM大模型工程师面试经验宝典--进阶版2(2024.7月最新)

目录 1 大模型怎么评测? 2 大模型的honest原则是如何实现的?模型如何判断回答 的知识是训练过的已知的知识,怎么训练这种能力? 3 如何衡量大模型水平? 4 大模型评估方法 有哪些? 5 大模型评估工具 有哪…

解锁数据资产的无限潜能:深入探索创新的数据分析技术,挖掘其在实际应用场景中的广阔价值,助力企业发掘数据背后的深层信息,实现业务的持续增长与创新

目录 一、引言 二、创新数据分析技术的发展 1、大数据分析技术 2、人工智能与机器学习 3、可视化分析技术 三、创新数据分析技术在实际应用场景中的价值 1、市场洞察与竞争分析 2、客户细分与个性化营销 3、业务流程优化与风险管理 4、产品创新与研发 四、案例分析 …

Python处理Excel文件的实用技巧使用详解

概要 在数据分析和处理的过程中,Excel 是一种广泛使用的数据存储和交换格式。Python 提供了多个强大的库来处理 Excel 文件,如 pandas、openpyxl 和 xlrd 等。本文将详细介绍如何使用这些库进行 Excel 文件的常用操作,包括读取、写入、修改和格式化等。 使用 pandas 处理 E…

仪器校准的概念与定义,计量校准是什么?

仪器校准的定义,在之前所颁布的《国际计量学词汇 基础和通用概念及相关术语》文件中,已经有了明确说明,而该文件做了修改以后,在后续新的定义中,仪器校准具体被分为两部分,第一步是将被计量仪器和计量校准的…

数据库测试数据准备厂商 Snaplet 宣布停止运营

上周刚获知「数据库调优厂商 OtterTune 宣布停止运营」。而今天下班前,同事又突然刷到另一家海外数据库工具商 Snaplet 也停止运营了。Snaplet 主要帮助开发团队在数据库中生成仿真度高且合规的测试数据。我们在年初还撰文介绍过它「告别手搓!Postgres 一…

vue3中若v-model绑定的响应字段出现三级,该如何实现rules验证规则

比如以下内容: 配置的rules内容 const rulesref({title:[{required:true,message:"请输入标题",trigger:"blur"},{max:50,message:"最大不能超过256个字",trigger:"blur"}],Category:[{required:true,message:"请选择…