【自用】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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

javaEE——Servlet

1.web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行交互 2.java后端开发环境搭建 web后端(javaEE)程序需要运行在服务器中的,这样前端才可以访问得到 3.服务器是什么? ①服务器就是一款软件,可以向其发送请求&#…

基于Canvas的Html5多时区动态时钟实战

目录 前言 一、关于Canvas技术 1、Canvas是什么 2、Canvas的属性及渲染特性 二、Canvas动态多时区展示 1、新建html页面 2、创建Canvas对象 3、绘制所有的时钟 总结 前言 出差旅行相信大家一定会住酒店,大家在酒店的前台进行预订的时候,是不是都…

【开发篇】明明配置跨域声明,为什么却仍可以发送HTTP请求

一、问题 在SpringBoot项目中,明确指定仅允许指定网站跨域访问: 为什么开发人员却仍旧可以通过HTTP工具调用接口? 二、为什么 在回答这个问题之前,我们首先要了解一下什么是CORS! 1、什么是CORS CORS的全称为跨域资源…

TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少?

TOGAF培训什么内容?参加TOGAF培训有什么好处?考试通过率多少? TOGAF培训哪些内容? 通过本课程,你将掌握TOGAF的理论和实践,理解企业架构的影响,能够评估、启动、设 计、执行新一轮企业和IT架构…

实用软件分享-----一款免费的投屏软件(支持手机投屏到电脑)Aiseesoft Phone Mirror 2.2.36 x64

专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…

燃料电池混合电源的能量管理系统

这个例子显示了燃料电池混合电源的能量管理系统。 这个例子展示了燃料电池混合电源的能量管理系统。 电路描述 本文给出了基于燃料电池的多电动飞机应急动力系统的仿真模型。随着MEA中起落架和飞控系统的电气化程度的提高,常规应急电源系统(冲压式空气涡轮或空气驱…

分解+降维+预测!多重创新!直接写核心!EMD-KPCA-Transformer多变量时间序列光伏功率预测

分解降维预测!多重创新!直接写核心!EMD-KPCA-Transformer多变量时间序列光伏功率预测 目录 分解降维预测!多重创新!直接写核心!EMD-KPCA-Transformer多变量时间序列光伏功率预测效果一览基本介绍程序设计参…

WSL2安装ContOS7并更新gcc

目录 WSL2安装CentOS7下载安装包安装启动CentOS7 CentOS7更换国内源gcc从源码安装gcc卸载gcc CMake中使用gcc关于linux配置文件参考 WSL2安装CentOS7 Windows11官方WSL2已经支持Ubuntu、Open SUSE、Debian。但是没有centos,所以centos的安装方式略有不同。 下载安…

cesium 聚合

cesium 聚合(下面附有源码) 示例代码 <html lang="en"><head><!-- Use correct character set. -->

你喜欢波段交易吗?

波段交易的核心在于精准捕捉市场中的长期趋势波动&#xff0c;以实现更为稳健的收益。与剥头皮和日内交易不同&#xff0c;波段交易者更倾向于持有交易头寸数日乃至数周&#xff0c;以更宽广的视角把握市场动态。 这种交易方式的优势在于&#xff0c;它降低了对即时市场反应的…

思考如何学习一门编程语言?

一、什么是编程语言 编程语言是一种用于编写计算机程序的人工语言。通过编程语言&#xff0c;程序员可以向计算机发出指令&#xff0c;控制计算机执行各种任务和操作。编程语言由一组语法规则和语义规则组成&#xff0c;这些规则定义了如何编写代码以及代码的含义。 编程语言…

详解反向传播(BP)算法

文章目录 what&#xff08;是什么&#xff09;where&#xff08;用在哪&#xff09;How&#xff08;原理&&怎么用&#xff09;原理以及推导过程pytorch中的反向传播 what&#xff08;是什么&#xff09; 反向传播算法&#xff08;Backpropagation&#xff09;是一种用于…

鸿蒙开发Ability Kit(程序访问控制):【安全控件概述】

安全控件概述 安全控件是系统提供的一组系统实现的ArkUI组件&#xff0c;应用集成这类组件就可以实现在用户点击后自动授权&#xff0c;而无需弹窗授权。它们可以作为一种“特殊的按钮”融入应用页面&#xff0c;实现用户点击即许可的设计思路。 相较于动态申请权限的方式&am…

【聊聊原子性,中断,以及nodejs中的具体示例】

什么是原子性 从一个例子说起&#xff0c; x &#xff0c;读和写 &#xff0c; 如图假设多线程&#xff0c;线程1和线程2同时操作变量x&#xff0c;进行x的操作&#xff0c;那么由于写的过程中&#xff0c;都会先读一份x数据到cpu的寄存器中&#xff0c;所以这个时候cpu1 和 c…

【ONLYOFFICE】| 桌面编辑器从0-1使用初体验

目录 一. &#x1f981; 写在前面二. &#x1f981; 在线使用感受2.1 创建 ONLYOFFICE 账号2.2 编辑pdf文档2.3 pdf直接创建表格 三. &#x1f981; 写在最后 一. &#x1f981; 写在前面 所谓桌面编辑器就是一种用于编辑文本、图像、视频等多种自媒体的软件工具&#xff0c;具…

OBS 免费的录屏软件

一、下载 obs 【OBS】OBS Studio 的安装、参数设置和录屏、摄像头使用教程-CSDN博客 二、使用 obs & 输出无黑屏 【OBS任意指定区域录屏的方法-哔哩哔哩】 https://b23.tv/aM0hj8A OBS任意指定区域录屏的方法_哔哩哔哩_bilibili 步骤&#xff1a; 1&#xff09;获取区域…

Qt源码分析:窗体绘制与响应

作为一套开源跨平台的UI代码库&#xff0c;窗体绘制与响应自然是最为基本的功能。在前面的博文中&#xff0c;已就Qt中的元对象系统(反射机制)、事件循环等基础内容进行了分析&#xff0c;并捎带阐述了窗体响应相关的内容。因此&#xff0c;本文着重分析Qt中窗体绘制相关的内容…

Vue3快速上手--3小时掌握

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;n经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core截止2023年10月&#xff0c;最新的…

阿里Nacos下载、安装(保姆篇)

文章目录 Nacos下载版本选择Nacos安装Windows常见问题解决 更多相关内容可查看 Nacos下载 Nacos官方下载地址&#xff1a;https://github.com/alibaba/nacos/releases 码云拉取&#xff08;如果国外较慢或者拉取超时可以试一下国内地址&#xff09; //国外 git clone https:…

数组-长度最小的子数组

M长度最小的子数组&#xff08;leetcode209&#xff09; /*** param {number} target* param {number[]} nums* return {number}*/ var minSubArrayLen function(target, nums) {const n nums.length;let ans n 1;let sum 0; // 子数组元素和let left 0; // 子数组…