centos7部署nodejs环境

把本地的文件拷贝到远程

bash 复制代码
scp /Users/shaohai.li/project/server-demo/nodedemo.zip  root@121.40.31.155:~

登录服务器

bash 复制代码
ssh root@121.40.31.155

安装 nodejs 环境 v16.14.2

CentOS

bash 复制代码
# 下载
wget https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-x64.tar.xz

# 解压
tar xf node-v16.14.2-linux-x64.tar.xz

# 进入解压目录
cd node-v16.14.2-linux-x64/

# 执行node命令 查看版本
./bin/node -v

# 建立软连接
# 注意:/usr/software/nodejs 目录必须是你当前的代码node解压后的目录
# sudo ln -s /usr/software/nodejs/bin/npm   /usr/local/bin/
# sudo ln -s /usr/software/nodejs/bin/node   /usr/local/bin/
[root@iZiqeav84ffabkZ node-v16.14.2-linux-x64]# sudo ln -s /root/node-v16.14.2-linux-x64/bin/npm /usr/local/bin/
[root@iZiqeav84ffabkZ node-v16.14.2-linux-x64]# sudo ln -s /root/node-v16.14.2-linux-x64/bin/node /usr/local/bin/

您可以使用以下命令查找 Node.js 全局安装的路径:

bash 复制代码
npm root -g

该命令将返回 Node.js 全局安装路径。在 CentOS 中,全局安装路径通常为 /usr/lib/node_modules 或 /usr/share/node_modules。

如果找到了全局安装路径,您可以将该目录添加到您的 PATH 环境变量中,以便在终端中使用全局安装的模块。例如,如果全局安装路径为 /usr/lib/node_modules,则可以按照以下步骤操作:

打开 ~/.bashrc 文件 运行以下命令打开 ~/.bashrc 文件:

bash 复制代码
vi ~/.bashrc

添加 PATH 环境变量 在文件的末尾添加以下行:

conf 复制代码
export PATH=$PATH:/usr/lib/node_modules/.bin
; export PATH=$PATH:/root/node-v16.14.2-linux-x64/bin

这将把 /usr/lib/node_modules/.bin 目录添加到您的 PATH 环境变量中。

保存并退出文件 按 Esc 键退出编辑模式,并运行以下命令保存并退出文件:

ruby 复制代码
:wq

重新加载 .bashrc 文件 运行以下命令以重新加载 .bashrc 文件并使更改生效:

bash 复制代码
source ~/.bashrc

现在,您应该能够在终端中正常运行 forever 命令了。如果在上述步骤中仍然无法找到全局安装路径,请重新安装 Node.js 并确保全局安装成功。

www.runoob.com/nodejs/node...

解压文件

bash 复制代码
unzip nodedemo.zip -d /home/nodedemo/

在服务器安装以来

bash 复制代码
npm i

端口放行 80 端口

阿里云服务器 实例 - 安全组 - 配置规则 - 添加规则 http(80)

访问如下地址可以看到网站效果

http://121.40.31.155:80

报错 80 端口被占用

bash 复制代码
[root@iZiqeav84ffabkZ nodedemo]# npm run prod

> server-demo@1.0.0 prod
> node index.js

node:events:504
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::80
    at Server.setupListenHandle [as _listen2] (node:net:1330:16)
    at listenInCluster (node:net:1378:12)
    at Server.listen (node:net:1465:7)
    at Function.listen (/home/nodedemo/node_modules/express/lib/application.js:635:24)
    at Object.<anonymous> (/home/nodedemo/index.js:10:5)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1357:8)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'EADDRINUSE',
  errno: -98,
  syscall: 'listen',
  address: '::',
  port: 80
}
[root@iZiqeav84ffabkZ nodedemo]#

杀死进程 80 端口占用

bash 复制代码
sudo lsof -i :80
[root@iZiqeav84ffabkZ nodedemo]# sudo lsof -i :80
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
AliYunDun 1392 root   13u  IPv4  29874      0t0  TCP iZiqeav84ffabkZ:40476->100.100.30.26:http (ESTABLISHED)
node      2039 root   19u  IPv6  48531      0t0  TCP *:http (LISTEN)
bash 复制代码
sudo kill -9 {PID}
sudo kill -9 2039

守护进程

www.npmjs.com/package/for...

bash 复制代码
npm install forever -g

[root@iZiqeav84ffabkZ nodedemo]# npm install forever -g
npm WARN deprecated nicescroll@3.7.4: Please use official npm package at https://www.npmjs.com/package/jquery.nicescroll

added 13 packages, and audited 14 packages in 9s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

守护进程,即使命令行观点依然运行 nodejs

bash 复制代码
forever start index.js

http://121.40.31.155:80

删掉 public 目录下面的文件

bash 复制代码
# 登录云服务器
ssh root@121.40.31.155

# 删除文件
rm -rf /home/nodedemo/public/*

scp 把本地的代码拷贝到远程

bash 复制代码
scp [本地代码路径]  root@121.40.31.155:/home

解压代码到 public

bash 复制代码
unzip [文件名称.zip] -d /home/nodedemo/public/
相关推荐
库库林_沙琪马6 分钟前
REST接口幂等设计深度解析
spring boot·后端
IT_陈寒9 分钟前
Redis性能提升50%的7个关键优化策略,90%开发者都不知道第5点!
前端·人工智能·后端
智商偏低14 分钟前
ASP.NET Core 身份验证概述
后端·asp.net
冷冷的菜哥14 分钟前
ASP.NET Core使用MailKit发送邮件
后端·c#·asp.net·发送邮件·mailkit
canonical_entropy32 分钟前
XDef:一种面向演化的元模型及其构造哲学
后端
小林coding1 小时前
再也不怕面试了!程序员 AI 面试练习神器终于上线了
前端·后端·面试
lypzcgf1 小时前
Coze源码分析-资源库-删除插件-后端源码-错误处理与总结
人工智能·后端·go·coze·coze源码分析·ai应用平台·agent平台
文心快码BaiduComate1 小时前
WAVE SUMMIT深度学习开发者大会2025举行 文心大模型X1.1发布
前端·后端·程序员
SamDeepThinking1 小时前
在Windows 11上配置Cursor IDE进行Java开发
后端·ai编程·cursor
知其然亦知其所以然1 小时前
面试官微笑发问:第100万页怎么查?我差点当场沉默…
后端·mysql·面试