设为首页收藏本站 国外访客:

 找回密码
 立即注册
搜索
查看: 16904|回复: 0

[教程/工具] 阿拉德-宝塔PM2添加项目报错-切换node不显示版本号解决办法

[复制链接]
灌水成绩
18541
100
19068
主题
帖子
积分

等级头衔

ID : 1

管理员

积分成就 威望 : 8
贡献 : 9
下载币 : 402
在线时间 : 1862 小时
注册时间 : 2013-9-5
最后登录 : 2026-8-2

发表于 2026-1-28 04:20:13 | 显示全部楼层 |阅读模式 IP:广东东莞
免责
方法一:卸载宝塔安装的PM2管理器,尝试重新安装5.2版本、多试几次,或者重启服务器或宝塔再次进行安装!方法二:自己手动安装PM2  需要先安装npm% N0 |( d2 T  l+ U7 p) o
/ s1 _) O6 Y; ^* ~  b& Z5 a
2 G0 J; G6 Z+ }! X  g
* A8 V) M" P1 c' U: f
yum -y install npm
, Z  ?5 k3 Q% x+ i. W
0 K/ x! z+ P2 r* e$ U& |# D
- n( I% Y% r% s
# X% e6 |* P2 O: Q, F
安装pm2
$ n5 o# }& I- a& V5 |. y, ?  U/ G  a. ], {( B: _7 [& b5 J  r, R

: T+ a" s7 N% O6 Y9 j
" o2 s5 e+ o4 ~# m# Z& ^/ M4 ynpm install pm2 -g9 H7 ~0 D; o- C" }" ]
" @0 b- P: ]! Z
1 d' \" x2 n; ?. s  Q* _

) |- W' p* D$ ?. Y添加配置文件
6 L  J. D3 ~* J' m7 ?6 e1 ^- r! F" j  G+ ^8 d3 G& d0 g' N) Z

) @% j6 \' a& w; H: b5 @* W* b# x
vim /etc/profile+ u5 L' g7 L' N# X' i

: J/ `- s1 k- l+ q6 P/ K. Y% [PATH=$PATH:/usr/lib/node_modules/pm2/bin3 @5 L/ l, ]  T* n8 D7 P
7 u' a( {# Q( r. t" g; d8 L
source /etc/profile+ t. }, p" Z# u
% m4 c+ e3 t. y6 ]

. Y2 q9 a( a3 V6 s

4 J4 f& l' ^) Q) `3 N4 S  N测试
! s2 [: v" a0 c& ]) U! m% O) P, o
3 y  |* t/ S  i
1 H4 V; a" j1 o4 G' t5 J% Y; n6 ^* w  o9 _0 p
pm2 -v
  f+ i- Z# B+ U

, ]( P$ n- p% K  j3 ?1 {7 I0 w$ Z
9 c" X, t  w& t0 F3 B

  b; S3 f& K" y0 Q- r1 U查看PM2安装路径
, r  @  o+ @+ }. t  k4 o( o: c  i
1 I/ J- M( P+ n/ B; ^) z. a% Z7 I% }2 A8 |+ m- q

2 F$ L% [5 X2 ~+ \  ~find / -name "pm2"5 t+ t& g; w& y! u1 _( D+ K+ c
6 {6 V/ B; n5 ^. \4 @
$ o9 P  R$ F& h. P7 m

% A1 B0 h" _7 x根据自己的安装路径修改配置文件
[color=var(--focus-color)][url=][/url]
可能遇到的问题
[color=var(--focus-color)][url=][/url]
问题原因
是node和npm版本太低,我这里版本分别是3.10和6.17
[color=var(--focus-color)][url=][/url]
解决办法–先卸载之前的npm
* N5 f5 o' R( X; R2 G% j
( H1 W# w6 B4 J% [6 K4 t) Y/ y1 i  T+ D) v$ ~7 v
$ Z8 D; a/ _3 f6 H) D/ Q1 O) P
npm uninstall npm -g! I$ F0 a- ^8 [- Y
: b$ Z+ y, E, f" W) s; G/ z3 ~

8 o9 b  b9 |% S" m
  C# L" c4 \7 V# `7 j
安装依赖; `$ e/ D. g# }) R- `
- f3 p! v& }2 ~* X0 B
# k9 V% @$ w. N( ~

* y, R- t$ _2 g0 iyum -y install gcc gcc-c++  b9 N6 d1 N0 E7 [5 P. i9 Q

2 M7 c9 k. w; r1 A/ u
5 Y# n+ [: R9 w) W* q; f+ d

1 L' h7 _' b9 \/ t* ?. r下载高版本的node安装包
) Y+ E6 F) W; z7 m3 p" T& N8 G$ p# Q; r) J6 R
! S' W  J3 h& q6 b8 Z7 y% ^

3 D$ v) Z' p9 V6 Cwget https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz
9 q. ~" N7 U0 V5 w
  O& l( ?8 v8 @9 f2 o
6 {+ ?  R; `" D% c1 ?& }

5 N" u# m6 `! Y0 ]9 ]0 U0 D解压到相应的目录) a2 p/ a9 Y: f
) l5 `* `" n6 L& x  w

# Z/ X+ d4 W# H6 a+ X* k9 a# b. E. w9 d' U$ {
tar -xf node-v10.14.1-linux-x64.tar.gz
% V" ?5 b8 R* _  V" p4 u

' o+ W$ X( W& D
9 Y: Y4 W- A& h: I) {0 S

: _0 C8 `3 }9 L! w重命名
% L* t. R; C8 c2 a# q# C
! l- l9 }5 J: D  C0 w2 b2 O
3 t( A( M% Z0 n7 k7 ~1 O0 E" N! L. E# J1 V
mv node-v10.14.1-linux-x64 node
" I  Q$ z# ]. d8 m7 O
, e) W& G, B5 Y5 ]7 [; _' V9 j! W+ F, U

+ J3 C' q, [8 W0 b* D; ?
9 G* R% ~6 F  U  z/ `
添加环境变量(根据自己的路径添加)) `! s) B; U9 y) |

& y8 t4 h6 w  x, l4 b3 O6 i+ o1 H; R$ x3 u
+ {6 P" _6 e1 M& L/ R
vim /etc/profile
& l% y* U' x' _6 G6 `' \" Z/ t

3 m1 `1 F4 Z4 x- W( y3 [export NODE_HOME=/myinstall/npm/node; u) w6 J2 Z& o/ @

7 q. K4 ]& L* E- U5 R( t1 s  Qexport PATH=$NODE_HOME/bin:$PATH
" t0 S6 o  q2 w# Z* Z

7 s  t0 r* l& [1 y  k
: {8 g% O+ ]/ ?; p9 `
2 f- P, C  }- g/ W- z6 N1 f
重新加载环境: t  U* z9 g, B7 Y! t7 o) o  v! z
8 `. J3 s/ L, u: m
6 t" R$ G: g0 [4 G# f7 {

/ Y- D1 `; x& l1 R- Ysource /etc/profile! g* G5 J( q6 O: @8 j& ?4 f/ w

* T' y( R6 K* i1 Q

. X% E) B1 j0 u  T# x* i
  _9 X* n  u" U, b
查看相应版本
[color=var(--focus-color)][url=][/url]
安装pm2
6 |8 j2 q% Z2 `( w1 F1 P! i. e( x, Y" L+ }
7 O( `% f/ o- t. p7 Y
1 j8 {9 B4 Q. X' r: C; P
npm install pm2 -g
( {' l1 O: {6 ~& ^

% Q: \$ {# G" E- P
( s. ^4 ?9 }9 x6 }  ~/ v: L
. X$ y$ z0 v. U
检测
" v  @. A! e4 {: X1 t# Y5 V( W6 l0 c- l6 ?1 K

% _) [4 F- a- q. c
4 h; n9 R$ d" _7 D" rpm2 list
% J7 B8 R# B% R$ t8 ]; N( |

* d: n3 {$ a, d2 L: d- z$ H( T  y2 C

4 ]4 p5 @* ]/ \" |( v/ H( ~. L
0 [0 Z1 o. Z6 x! n# @
[color=var(--focus-color)][url=][/url]
常用命令8 _1 b$ W+ i( N" |( Y! K/ x

$ l6 ^& N" y! K+ u; f$ W
, V& e2 P2 ^1 P1 v: S1 c; G0 w# _: p' f5 n/ ~& l) G
$ pm2 start app.js                  # 启动app.js应用程序
7 W0 H6 F' [1 A+ D' G( }
5 C- Z5 d* K5 p: T2 N/ L% e
1 m! w( P: K- Y6 F
4 c5 T/ s) M; W0 H

2 Z1 h  W; f) N' G: o( g( t4 u8 v% E# y5 F- o6 O3 N
; i, K; \+ X6 {' y
0 p8 w( f0 X! S3 O- O& e; M- H
$ pm2 start app.js -i 4                # cluster mode 模式启动4个app.js的应用实例 # 4个应用程序会自动进行负载均衡+ X* J6 _2 |; F5 u0 u  |
2 m; C7 [0 c/ N5 C3 J9 y, f
! {3 M2 _7 U5 Q5 b

: L" L7 K' @7 X& F: K1 L
  A% }, ^4 y/ ?  v4 O3 `+ I2 L5 ?( @8 K$ N. j( c
8 u( f; R+ S6 `" _
. n' U+ O; @5 d' J/ D; f1 j% W
$ pm2 start app.js --name="api"                # 启动应用程序并命名为 "api"
5 Z! `' k+ E: j

0 x  @' Z9 |& {: n& \: ?% c) ~

8 u9 x. ^- T" i/ x) m+ k
  t: c  t2 L9 {  \
9 ?: L% J; E; U5 d/ e
/ V: A3 V$ q% \% t+ C, @$ ?# {/ i

+ v& x$ Q0 C" N- y0 {) F2 S2 y( {) K3 ^8 }+ p9 t* |) U
$ pm2 start app.js --watch                # 当文件变化时自动重启应用
  |; z1 y+ J; F! G

* R1 p, U! ~% i
+ v: {* m' F+ m, B% L
5 L4 ~  B1 J, }5 l% t

) j( S/ N7 q& ?9 J) d, Z3 H, [% x" s  S5 }0 C- H
1 Z- G* f3 ?; \- v0 j

/ p" B/ ^1 @9 F0 B! N. w. \$ pm2 start script.sh                # 启动 bash 脚本
3 n& \/ v3 W- v/ X- p8 g

$ I3 `$ U+ G5 H5 e
0 O4 x% y- y) b3 _4 b1 L* Q
6 g7 y- F/ S3 O  e- w* V; N

. \' [" f8 O3 e4 b! `
& E+ C) V7 u3 {0 L7 e' h! v! H. m6 T, @6 N6 U7 ^
/ q1 U) K: {4 I* G! E. h% I
$ pm2 list                # 列表 PM2 启动的所有的应用程序5 O, E/ Q7 h; m+ T4 P9 ^

. I% a6 ]0 i! ^4 }

) k' @. n1 x% `! g( Q5 \) ?0 r3 ^+ A
+ R9 @4 s* G& s6 ?: d" h
7 l* v  l& _& D( G) O8 m, B9 l/ J6 G
, R  U* m. ]4 a& [0 |
( P6 X+ ~2 s0 g# _+ M- @. T3 z

& @: I6 B# ~7 w& F# N9 W' l2 y$ pm2 monit                # 显示每个应用程序的CPU和内存占用情况
5 B! r" \, ^% N- O7 q. `% y; g; z
: w# ~! }$ C& @: l: x8 W9 w
" v' l* U" G8 |$ {  q, d+ L
$ F* b! U) |* V" p& n

9 D4 r: x2 D" G$ `' x0 d" A6 m9 K- w# v6 Y( ~
9 F1 v- c: m! i6 n" c

1 B9 W' i) y9 o: Y1 X  O$ pm2 show [app-name]                # 显示应用程序的所有信息
4 y: w1 I4 i5 k  A9 K
9 J* |, D' q- G

  c4 O0 {7 W# p

5 s) v0 H' @6 L3 ?4 l9 {  A/ S. c: i% ?
; w/ r. m( f$ x7 m. [& L

* f% @; K+ {6 ^+ o1 C
/ Q$ W% ~; Q" g3 e& H& x$ pm2 logs                # 显示所有的应用程序的日志9 j% u* T8 i% c8 [

! |3 J: x1 N" `/ |! V
5 H/ p& B( g' F& s+ I" a

# X2 l! A" w2 m+ z+ Y; d% w7 M/ q. ]- J

. U+ I4 ~$ m$ l1 J
9 |) v$ O' z, m; f2 X9 S7 Y4 ]
$ pm2 logs [app-name]                # 显示指定应用程序的日志  r7 u1 U9 {- H' ~4 y4 F& T  Q

0 L# ^3 k9 P3 c
1 V% Q  Z, e6 }0 B. v) D9 D' O8 j
. r  G2 o" t( A+ D6 ~5 u; s

& w$ M+ j. X$ E6 N
1 T+ K7 c0 E+ L2 j, P, ]9 u. r
6 p  s/ p; A3 G
' N* H! F0 _* k, {8 L) t$ pm2 flush
4 x/ R7 y" J% R5 l6 }

5 E, M0 \, w' q7 D$ t0 S) M) ]

( j- \( l9 I& T3 |1 e6 w

- `* b3 I, p# n9 b, ~2 i- V( q* \/ s0 }$ d, {- }0 `

# j, |8 y( v% c) T
' ^5 J8 }6 f5 N+ h( J
- ~* b( E" V. f* K$ pm2 stop all                # 停止所有的应用程序) t! H4 y* F6 f! c4 O; O

! b: _% r. G0 x/ g5 [0 ~
# @1 k8 j) k% L* e( E* i

7 \1 k8 f# c$ F! s! c8 W3 S5 h4 c) Z
! L* j2 h5 a% E% ~( C8 `1 _+ n; d* ]/ W9 f

9 j' g) F  c! l* ]7 S% i4 C+ f$ e9 D' Q
$ pm2 stop 0                # 停止 id 为 0 的指定应用程序5 \4 ~" U; C( }. m* Q, M

% M0 y$ y# A- `3 A) l" ?
$ c, _9 K: G4 e9 a3 o
1 T+ ]/ L8 B8 [; B) K) U% d
& ?& ?1 w% c. o  b

# O. w! X7 v! E, f, w9 b
; W# ]% L7 x. u9 w0 K, M  x' ]" W1 O9 [; d: G
$ pm2 restart all                # 重启所有应用
+ T# S. w% l7 m( x& k+ z
  y! ^% h1 d" w' A* K( [" K8 f

; H8 l$ g+ d9 D1 L5 |9 ^8 A
; W" M5 l; k& `. U4 i& R# k& P2 R

5 S) K: P% v9 G, w2 L
8 a, O+ F* I2 a# u/ l
! d2 J4 Z1 z' E0 |
) f- G4 z" t/ _" z& a; u6 ~+ }2 M$ pm2 reload all                # 重启 cluster mode 下的所有应用. ^  s* N) r8 G! N  Z$ f
$ O2 M1 q6 I6 K0 k7 _7 N

: e3 U" t; p# }

7 {) b$ e; H0 x. j3 O5 U3 }
. i1 t, J! Q0 B+ j2 U  }! U7 [' t" h: Z- b! b4 x
$ l( v" `& q7 y

' ?, O) c2 j5 Q5 m" t1 z$ pm2 gracefulReload all                # Graceful reload all apps in cluster mode
: Q4 }8 ~: z% F) m! O/ u1 M7 M) ?

4 A, h* u; |7 A8 k% j1 g1 m

4 S( ^9 f8 Y( z

+ _$ h5 w7 z( W) k
9 t7 U, o2 J+ t) R* |
; E+ d' L& j1 a# Z8 C) y, p  S" w1 p2 ^. c' m
1 r% W3 P1 ~! l& s; K' q
$ pm2 delete all                # 关闭并删除所有应用) s# B3 _" G* H6 l4 {* r. e
! p8 C' @# t' G. T

7 O# q: [, j$ `+ [  p% A+ V' D

$ H4 G( k% z) z) d- p8 _8 N( c; F: D5 Y9 A7 @3 k( O
. `5 u1 @) g" p) b3 m, _

' N: U! @, Q2 d5 Z% P8 I/ W$ c- n$ Q2 l+ R8 h& u% R
$ pm2 delete 0                # 删除指定应用 id 0  a' m  l1 A8 M/ e6 U/ g

) |! e/ G: M4 ]* d1 o+ M/ R
) i1 r) D% o7 R3 r. E; `
* e7 [6 O0 m0 j: N  N

) L! g5 P0 _, D- U% @
3 y0 b' X4 \7 }; {5 ~
5 L$ f; P2 h8 l( k
2 x' M- \8 {: U6 f+ @" ]) t$ pm2 scale api 10                # 把名字叫api的应用扩展到10个实例& n. J% H) m0 v1 r( h& t( k
' d8 P; m3 F! h, H

6 a% q, @& \" N4 N- s3 U% l
1 C6 y4 T, {9 K$ g
$ }; T3 E) J, |/ E

9 F$ T" U3 E! x4 f6 U
8 |; s# q: q2 ]7 Z0 q2 u) W  X/ C( x
& I( p0 ?( ?# G. B$ pm2 reset [app-name]                # 重置重启数量# J% F+ `4 V* ]- F

& z( S( e% W; [0 x
& G0 m( A( i1 ^# {) K' {: l" Z& [
8 _% ~$ [; d. W
# I& B$ e2 _( a4 J3 T' y
6 e& Q1 w9 z: A/ J

, u# D: y' Y0 p# L. p7 v* K" b* [0 _9 p2 |
$ pm2 startup                # 创建开机自启动命令4 n8 ?/ S. v; [2 v# `
" A- j5 A. t5 h" K( j
& U3 l  o4 ^. j3 b# a: W1 Z5 t- D' m
2 h* K+ p& H/ r
6 {  j8 z; n; H( ?& p

0 R# C& }) k" ~5 N6 o/ R2 L6 i: C  R7 G+ p2 \2 G/ k

/ `" d) z7 @# R. |1 Z. G+ z7 f  \4 o$ pm2 save                # 保存当前应用列表
0 g9 |) Y1 b( s$ o" j/ h, k

! U' J; p3 E2 _# z8 I0 S

0 T9 W! |  @4 \
6 K: O' M! [# |) f6 r4 }- B+ X. R  y! t
4 s4 _& c' i# b/ w/ P

/ v3 r" _* K! I1 N3 `0 Q
- E2 m2 C! v' r) Q* N8 f' z3 F9 D3 ^
$ pm2 resurrect                # 重新加载保存的应用列表
) P" t: I/ r* P. \$ S
$ c) C! t: {/ e6 S& K6 R8 H3 i
6 y. @  [8 c: h' v' D$ p
" e$ B9 y) V* w

4 j2 L. E6 u* ]4 @6 `" ^! V& B9 K- V! P4 p& a6 M! n

' b0 D8 @' A7 D9 C0 |) t  g+ N# n( o7 L- N& b. ]7 O0 V, d
$ pm2 update                # Save processes, kill PM2 and restore processes( P. z9 S+ G/ L9 W3 X# |& e0 M5 I
: |3 H1 f! G; @2 w

  K0 _, U. N- M% @3 G
+ ?0 {* `9 k* j; z1 \7 |2 M: p
# ~1 y) V; f/ \, P2 }: m$ m! H
4 I. h& ^4 [* G2 P' a6 Y
0 K& t/ G) J/ F1 n% b( }/ A

2 U& m' O; z& t- y$ pm2 generate                # Generate a sample json configuration file6 M) D/ m( J: i: `3 W7 h

/ d; x3 a4 i: Q3 d- }( u
/ \; I* |% y) y1 W, i. S( B
" B& V7 K3 }9 y1 R/ R6 e
举例:
6 o4 Q! ^; ~# z5 w阿拉德的脚本启动方法

9 f& O( \. ?$ S0 Z( j7 C3 F, F: J5 z" ]1 `# I" t5 A8 Q

' U& Q  J+ u5 _/ f
) n5 r" l) ]0 U9 x% Y$ i. |cd /www/wwwroot/gmald/src. w) R8 \7 g# o6 }$ j/ o
8 p$ T; t- j9 D) R- B( i# ?
% X# T  A. k4 W" J
7 z9 M$ v' B6 j
: c" t  y! x- j0 k4 _
6 z7 `" }. l! @! s- I

3 [3 E0 ^7 z9 F8 o$ l
' w: S8 f6 q' s& @pm2 start app.js
, T; x3 k: v3 {; Y
% Z9 c% D( M8 `6 Z

/ `8 s& T% `- V5 g5 m
0 o4 G' {" e% k6 s' l! I

# D' w4 G7 |. a/ Y$ v: Q
免责
帖子地址打造全网最多免费游戏网站
今日来客 列表模式
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|蔡州手游 |网站地图 wapmz.com

GMT+8, 2026-8-2 13:35

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表