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/
相关推荐
不会编程的懒洋洋1 小时前
Spring Cloud Eureka 服务注册与发现
java·笔记·后端·学习·spring·spring cloud·eureka
NiNg_1_2342 小时前
SpringSecurity入门
后端·spring·springboot·springsecurity
Lucifer三思而后行2 小时前
YashanDB YAC 入门指南与技术详解
数据库·后端
王二端茶倒水3 小时前
大龄程序员兼职跑外卖第五周之亲身感悟
前端·后端·程序员
夜色呦4 小时前
现代电商解决方案:Spring Boot框架实践
数据库·spring boot·后端
爱敲代码的小冰4 小时前
spring boot 请求
java·spring boot·后端
java小吕布6 小时前
Java中的排序算法:探索与比较
java·后端·算法·排序算法
Goboy6 小时前
工欲善其事,必先利其器;小白入门Hadoop必备过程
后端·程序员
李少兄6 小时前
解决 Spring Boot 中 `Ambiguous mapping. Cannot map ‘xxxController‘ method` 错误
java·spring boot·后端
代码小鑫7 小时前
A031-基于SpringBoot的健身房管理系统设计与实现
java·开发语言·数据库·spring boot·后端