在 CentOS 上配置 Node.js “失败”是很常见的问题,通常不是 Node 本身有问题,而是系统环境、权限或安装方式不对。下面我按最常见原因 → 对应解决办法给你梳理,你可以对照看看是哪一种。
yum 装的 Node 版本太旧CentOS 自带源里的 Node 经常是 v6 / v8,现在项目基本都要求 v14+
现象
node -v
# v6.17.1
解决:用 NodeSource 或 nvm
curl -fsSL https://rpm.nodesource.com/setup_18.x | bash -
yum install -y nodejs
或推荐用 nvm(最稳):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 18
现象
npm install -g xxx
# Error: EACCES: permission denied
原因
CentOS 默认禁止普通用户写 /usr/lib/node_modules
✅ 正确做法(不要加 sudo):
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
现象
node app.js
# 本地能访问,外部访问不了
解决
# 防火墙
firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --reload
# SELinux(临时)
setenforce 0
现象
node: /lib64/libc.so.6: version `GLIBC_2.28' not found
原因 老系统不支持新 Node
✅ 解决:
npm config set registry https://registry.npmmirror.com
[Service]
User=node
ExecStart=/usr/bin/node /app/app.js
常见错误:
Environment=PATH=...pm2 startup
# 没按提示执行命令
cat /etc/centos-release
node -v
npm -v
which node
echo $PATH
你可以直接贴:
cat /etc/redhat-release)我可以一步一步帮你把 Node 配通。