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/
相关推荐
llz_1123 小时前
web-第二次课后作业
前端·后端·web
红尘散仙9 小时前
我把终端小说阅读器接上了 AI Agent:TRNovel 现在能用 skill 生成书源了
人工智能·后端·rust
卷毛的技术笔记10 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)
java·人工智能·后端·python·spring·ai编程
会编程的土豆10 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
喵个咪10 小时前
GoWind Toolkit Go后端代码生成 完整全流程实战
后端·go·orm
basketball61611 小时前
Go 语言从入门到进阶:4. 数组和MAP使用方法总结
开发语言·后端·golang
qq_25183645711 小时前
SpringBoot+Vue 共享电池柜管理系统 完整实现 前后端分离项目实战 完整代码
vue.js·spring boot·后端
zhangxingchao11 小时前
AI 大模型核心六:量化、Workflow 与 Agent、多轮 RAG
前端·人工智能·后端
IT_陈寒12 小时前
Vite打包时遇到的坑,原来问题出在这里
前端·人工智能·后端
ayqy贾杰14 小时前
基层管理的三板斧,在AI时代行不通了
前端·后端·团队管理