在 CentOS 上配置 Node.js,有几个容易踩坑的点和推荐做法,下面按“坑 → 建议”的方式给你总结一下。
CentOS 7/8 自带的 node 通常是 很老的版本(比如 v6、v8),很多现代项目跑不了。
用下面几种方式之一:
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
可换成 20.x / 22.x 等。
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,从根上避开权限问题。
Node 起了服务,外网访问不了。
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
如果是云服务器,还要看安全组。
node app.js &
npm i -g pm2
pm2 start app.js
pm2 save
pm2 startup
或 systemd(生产更稳)。
Node 起了,但访问不了 / 写不了文件。
getenforce
sudo setenforce 0
配置 SELinux 策略,而不是直接关。
node --max-old-space-size=512 app.js| 现象 | 可能原因 |
|---|---|
| command not found | PATH 没配 |
| EACCES | 权限问题 |
| 端口占用 | 之前进程没关 |
| 外网不通 | 防火墙 / 安全组 |
| 编译失败 | 缺 gcc / make |
如果你愿意,可以告诉我:
我可以直接给你一份可复制的安装配置脚本。