温馨提示×

centos nodejs配置要注意啥

小樊
41
2026-09-05 23:27:29
栏目: 编程语言

在 CentOS 上配置 Node.js,有几个容易踩坑的点推荐做法,下面按“坑 → 建议”的方式给你总结一下。


一、不要用系统自带 yum 的 node(除非你无所谓版本)

问题

CentOS 7/8 自带的 node 通常是 很老的版本(比如 v6、v8),很多现代项目跑不了。

建议

用下面几种方式之一:

✅ 方式 1:NodeSource(最常用)

curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs

可换成 20.x / 22.x 等。

✅ 方式 2:nvm(推荐开发环境)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20
nvm use 20

二、权限问题(最常见)

问题

sudo npm install -g 后,普通用户跑不了,或以后 npm -g 频繁报错。

建议

不要用 sudo 装全局包

npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH

或干脆用 nvm,从根上避开权限问题。


三、CentOS 版本差异

CentOS 7

  • 默认 glibc 较老
  • Node 18+ 没问题
  • 但某些原生模块(如 Sharp、SQLite)可能要编译

CentOS 8 / Stream

  • 更现代
  • 但官方已停止维护,注意安全更新

四、防火墙 & 端口

问题

Node 起了服务,外网访问不了。

检查 & 开放端口

sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload

如果是云服务器,还要看安全组


五、进程管理(别用 nohup 长期跑)

不推荐

node app.js &

推荐

PM2(最常用)

npm i -g pm2
pm2 start app.js
pm2 save
pm2 startup

或 systemd(生产更稳)。


六、SELinux(CentOS 特有坑)

现象

Node 起了,但访问不了 / 写不了文件。

快速判断

getenforce

临时关闭(不推荐长期)

sudo setenforce 0

正确做法

配置 SELinux 策略,而不是直接关。


七、生产环境建议

  • Node 用 LTS
  • 前面加 Nginx(反向代理)
  • 静态资源别走 Node
  • 日志用 PM2 / journalctl
  • 限制内存:node --max-old-space-size=512 app.js

八、常见错误速查

现象 可能原因
command not found PATH 没配
EACCES 权限问题
端口占用 之前进程没关
外网不通 防火墙 / 安全组
编译失败 缺 gcc / make

如果你愿意,可以告诉我:

  • CentOS 几?
  • 开发还是生产?
  • 要不要 Nginx / PM2?

我可以直接给你一份可复制的安装配置脚本

0