设为首页收藏本站意见反馈 国外访客:

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

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

[复制链接]
灌水成绩
17880
95
18382
主题
帖子
积分

等级头衔

ID : 1

管理员

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

发表于 2026-1-28 04:20:13 | 显示全部楼层 |阅读模式 IP:广东东莞
免责
方法一:卸载宝塔安装的PM2管理器,尝试重新安装5.2版本、多试几次,或者重启服务器或宝塔再次进行安装!方法二:自己手动安装PM2  需要先安装npm
; @& ]4 }* Z5 @) _, M( W* J% d$ E

( Q8 a. K5 C0 x# ^5 i, c" b6 a, g/ S6 I/ B+ q( W+ z& f& `
yum -y install npm3 c0 v% w) ]/ g9 T

4 L  `/ M4 B' n0 s# d
) \4 Q( ^& T# w, P$ Z
$ B  ]/ d5 U) s, G  ^' `
安装pm2) r% M9 d2 ~5 H6 B  ]

7 t$ {& I- Q7 g8 A5 ]/ \0 r2 H' _8 z6 j9 |7 @( I
9 d5 i" }1 d7 y
npm install pm2 -g5 B4 p# |0 q2 q. L' ~' b5 K- I
) I* ]- ?2 _& I. z* w1 V- b, S: |

3 G* G$ o9 c7 O! u$ \, }

' Z* u0 Q" i+ ^0 X7 G9 Y' l6 ]添加配置文件
1 r. _/ Z% r! T, f# {1 K) G# p
5 U& f; W; D. M: Q% n2 d
( B) t6 s- L$ O/ ?) `. K. K2 X, g! L  q, c
vim /etc/profile
  r* C" G& h- R$ l
' z0 |3 y  B' e5 k7 q
PATH=$PATH:/usr/lib/node_modules/pm2/bin8 i+ r0 X5 e) r& t; c
" M; i9 q; r$ G' R
source /etc/profile( K5 T0 e' }1 w8 m/ m. o! D" t; Z

4 ]& }3 x! k; s; F; E7 _  w4 W
! e1 s2 B- |1 h

! Q5 P, P: p5 [& h测试0 g* P7 }- K/ b% |! V
7 i( A: F# h0 b& q! `6 c, ~! v
" G* A! b0 C5 e# r- U# T6 |& A& Y* x

- L; e+ o$ Z7 h- t8 v7 A2 r8 Spm2 -v: z5 B0 k" [& @7 J! X

8 }* J& @, `8 d
+ p& w) G" ^0 x3 x1 |

% `( U% [8 f  q查看PM2安装路径
5 i7 T* _3 y  \1 R3 S
, R9 w8 \0 Z% z1 ^/ [* H/ o' K' t7 \7 n0 v  w9 E  y

: O( B* T0 u7 V2 b: d, Dfind / -name "pm2". \6 k0 r: d. H7 F3 N: v

$ d4 x/ m# {3 B. q5 x* O9 \
$ N* u8 A% _3 l3 a% V5 c8 H7 P# r

- g0 J5 u2 [) |1 E( m+ D根据自己的安装路径修改配置文件
[color=var(--focus-color)][url=][/url]
可能遇到的问题
[color=var(--focus-color)][url=][/url]
问题原因
是node和npm版本太低,我这里版本分别是3.10和6.17
[color=var(--focus-color)][url=][/url]
解决办法–先卸载之前的npm3 q2 v! P* J/ @* a7 g0 b- C/ B
) n# z4 I2 N. f

: B9 |" r4 x; o* e
# L4 I/ N* a# y7 D; v! r" [npm uninstall npm -g
# Q1 Y- D5 f  h) K) U2 H
$ U3 P, K" Y% n

. e; c" E' F& @

# p6 Z' ], d. a# ~# k9 Y安装依赖7 z' K4 \. K$ Y
* r, `: d* }8 t
- I. E3 U1 D3 F
# {1 L1 g6 t1 _5 Z$ D% _
yum -y install gcc gcc-c++
" ^/ @2 D" S1 k' W/ b

$ y6 x0 O9 F4 w5 J& N3 e

3 p3 }" C) i* k

+ l( y7 c9 z, N- U, W下载高版本的node安装包
: a0 B. w* h6 s* U- F
. q3 h6 _( O8 }1 p5 Z; H6 [4 I8 b- z8 q! L. C
  \& W' I% W% L/ i* b5 q
wget https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz1 U6 N0 q: L6 X# J' r

5 G$ L; n! v* {! X- ^/ ]

$ C$ ?! V. ]  @+ j; T

! [) W1 t  s1 h; b解压到相应的目录  F6 U$ z% M: u7 K* `
: J' a6 v$ r) Z, W& ]  m& G

9 J8 R# |  O, b$ S+ G7 r! z
6 j9 P. \( G( k/ j  \3 Gtar -xf node-v10.14.1-linux-x64.tar.gz
. T+ T4 t  k+ g  ^& w" F
4 ]3 }& N: B8 s7 u5 w7 C! }
9 K% ]$ O' ~; C4 H- t3 X

% |5 y1 `  [" j& `% i2 D5 W4 Y重命名+ A: {0 z( E4 ]6 e1 _/ F

, N9 o6 j, Y3 h7 ?! W- n& D
, o) I! B% r" l5 v% ~8 n) p" q) [  I
mv node-v10.14.1-linux-x64 node  F- v0 w: `7 X2 n# L

$ t9 G/ F* V( }4 L
/ T/ [& j! D+ {' `' h! a
' U+ P! {: `% Z: z; ]. k
添加环境变量(根据自己的路径添加)
8 c. ]% c- U  u9 j$ G9 Q4 s7 I6 f0 a, w3 v, d, G2 X2 s
3 o9 O/ H; O5 z8 l$ ~7 ?9 [

0 W3 X- R. L5 X4 @vim /etc/profile3 s7 `$ l/ w# J& U' }& U! n0 ?' p
' t6 ~! ?& ~) j! ^
export NODE_HOME=/myinstall/npm/node& R" k+ j" G/ F, L2 q" s# h* j! ?
5 Y# t% ?* k8 v0 }
export PATH=$NODE_HOME/bin:$PATH8 f, G: n; D9 V

1 i7 n7 _4 u1 T, R
7 j; p! T1 N/ X& T2 c6 a; f

7 o$ M0 |6 Y2 Q) L) z. P重新加载环境
+ X: i0 ^( o! H1 U5 ?7 K! f, ?$ F$ }1 N, I9 ^& P
6 f' n6 t8 J$ m0 _

3 h- G/ J, O5 Q$ g$ e2 f! zsource /etc/profile
' S+ I3 u( t2 \7 n! b  X

0 k. k& b8 ?, m" Y6 d; }
$ {# A$ {( u' o: d

! a/ W& ^$ G( o) O3 H+ `查看相应版本
[color=var(--focus-color)][url=][/url]
安装pm2+ n# w6 S: J8 F; d

0 @# ^- l* \, u2 Q1 @* n# v5 C! H- n
1 k2 F6 e* i' {4 D6 z+ y% j- X+ T! p
npm install pm2 -g
% j* M* J# }3 ]# r7 |9 U
2 n+ F5 Y: p2 k0 G
  {4 b1 O* I$ [& A% @6 y% H8 t$ K
( C' G2 X' R2 X+ I# r. N  q9 `+ {1 _
检测* d* q" U" n; I. B- ~# _
$ B5 n( K* ]+ J; ]6 }4 Y
9 n$ r9 |' G7 }8 ~  ?% U  r
4 x/ J/ C5 H( B0 ^6 Y
pm2 list
6 x+ ?8 }. L, K5 {2 F0 f9 z
- q9 b0 a9 O, p: u# X/ N

! J* C2 H/ a/ j9 f* A) j
/ h# ^3 r  ^& f0 M
[color=var(--focus-color)][url=][/url]
常用命令7 v6 l+ y! T1 c9 V& ~5 @! y

; l) \9 f1 D9 k4 Q: V* m
' \0 Y8 m# f- ]8 X- h% J+ J# s) |5 \; q4 r1 P7 k3 g. L( ^  H
$ pm2 start app.js                  # 启动app.js应用程序
& S& P5 N0 n* h; t6 }

: P$ N  J, j8 {2 J; O3 P4 i
* }9 ?; I; T: ^: h" G2 l' \% {

- A. z. _. Z' e- E' h. E! ?
3 f+ R  ?! L# |6 J2 }, ]. c4 w3 p
+ I; b3 Y' W# u. {8 N5 T( C3 k

9 c  D* i1 L2 D8 I1 s  v+ V$ pm2 start app.js -i 4                # cluster mode 模式启动4个app.js的应用实例 # 4个应用程序会自动进行负载均衡
4 N/ R4 b% }: r4 ?  ~/ Q9 f; ~

9 ?' u; q) _$ a: E
; \# I7 L9 ~7 a4 R% [! t0 [) `! R
+ X4 o6 W) w' X2 q, X4 D) U9 d

3 U7 a1 ?0 x; r% m' M% F& H, I0 K$ m$ }5 G/ L+ Z9 \; G$ ]; R

& w1 _( Q3 n+ R3 q
0 H. ]8 u) \  j$ pm2 start app.js --name="api"                # 启动应用程序并命名为 "api": D3 Q$ `5 S6 D- U( M
! s% J, {0 ^' ]' N" c+ z4 `

  w# {& o( g2 j; ]; i. V. m: _
' u. Z- P& a/ G  V# T+ ^

" q9 N1 d; u1 m  x9 V; j8 t5 M! m8 d0 L
; ]% b2 O4 }0 S! Z: y( O
* h) h8 h5 F1 W
$ pm2 start app.js --watch                # 当文件变化时自动重启应用
" R; h  e# t4 N2 U

( z9 }% g1 {& q: u3 O7 G1 q. V' z" E# u
/ a7 S! }& D+ L# x, r

* E5 T' |2 t. b8 m1 h0 L, b2 @  V

  H0 x8 b/ \( Q, O
3 c1 d9 q1 ^* S' m) c; K7 y  j0 f" E3 x9 @
$ pm2 start script.sh                # 启动 bash 脚本
* [2 w- B3 e- p; k
+ P* B# @7 p2 Y# d9 G. Q/ C

( s8 s, j/ g% [+ `& x
  j5 G# n% N. R7 m# J5 V' X4 m8 A& N

& q5 c3 W) J$ z
8 |4 k' f' P7 I% q1 J
5 e* n6 J7 g3 n7 T
: l$ Q# _7 v: F& }0 j$ pm2 list                # 列表 PM2 启动的所有的应用程序% {9 R$ \9 t8 j! I4 |

5 K$ `& H& u, D, V: G0 S! Y

& k7 a% p8 I/ T6 T
9 a$ ~+ p+ h& i* E

1 c, Y6 R$ {& ]: G# X
; K$ _) S8 V8 n8 s+ ^( }
4 {! l2 O  S6 j+ B
) o  v6 X# g/ Z1 ~& O" z$ pm2 monit                # 显示每个应用程序的CPU和内存占用情况- `! v  D" A1 T4 l4 Z1 g" B4 N2 m
1 U: }7 }* z8 g$ Z' H* E
& T" Y" m/ J2 c9 T) H: {, S
* U  `+ D& C/ I: M# P- Z% O
/ m: W& q+ E" @

2 f3 s, i' @  w& M$ L9 A$ Z
* a( E3 L# M' p9 U: X0 c
3 R* I3 H: C; Z$ Y+ P1 w9 e- n$ pm2 show [app-name]                # 显示应用程序的所有信息6 |, r! W/ ~( g: Y0 Y) m4 h" M/ c' N" b
' ~9 H; R& m: ?" n9 E" t
" j' O6 h& C! G# ?/ h( _
( ?( u# s9 ?4 t

. @- T, ^: h3 U* x' V% w2 N( h- R/ H0 C/ @
/ x9 T( _& g* g: p
* ]7 K1 I9 S) \+ {& [
$ pm2 logs                # 显示所有的应用程序的日志7 o' ?3 V6 d( x% H7 J" h2 {
* h9 \$ J9 n# k  T
" B4 E/ ^9 o( Z; m1 D9 ?
  z3 w) n$ Q5 J

  {* k- L) f$ X% I) y6 w
; x" ^% Q$ k! c) j0 H2 Y" m* B, J$ ]9 w* z: K0 \3 X, F3 Q

& H/ |  y/ n) ^9 T0 n$ pm2 logs [app-name]                # 显示指定应用程序的日志: G& z& ?" d, N/ R; ^, M6 `* @

' A" ]( h6 j* C/ \+ _0 l: I* E/ n

( }. I% d4 f9 \& A& M- H
) y* l$ f0 k4 z0 |# E* }( B
, g: r# a5 a  u3 g+ J: b
; c% x+ z5 [; e! X

: d+ |' R- `9 o9 i7 ~% T/ O# `3 t- l- p; L" s$ V( w
$ pm2 flush7 {  f7 ^5 t& K- j1 Z" f$ q
: M5 ~  d+ U( e; O) s  d' R

- {# a* [0 U, [# m4 c. c
9 B9 d- h7 `! u$ @# W0 W8 @

" f/ e1 v1 G' x  L1 F  u9 Y. B$ N1 H, n
. x" _# Y4 C' M/ S
4 k  z; |( u, z
$ pm2 stop all                # 停止所有的应用程序3 R& z3 c. H$ J4 m! j9 x) n% e
$ U6 T( ?) N; _* }0 u# U
! {5 w8 \; B/ }7 x3 [9 i" ]3 O4 E
( C- f) R! A' V5 v' K' }  M

6 L/ r( K9 R/ t: o7 |. ^; m) s- l# i. n5 X, Y' f' ?* x+ K

* x# m! C, K6 o2 y& _- W5 X
( r4 A$ ^3 \, ~4 T5 z. J1 o$ pm2 stop 0                # 停止 id 为 0 的指定应用程序
. K8 X/ k% u9 _3 ?  Q8 h" ~0 X$ R7 R
& M3 `) k1 ]! F3 I0 P1 e

" ^. e) ~4 _- P% d5 b1 z: t  c

* ]0 V1 D  J  N  {! m1 j& t) ]" ]( s5 i3 [- G% [
  K' A9 _$ D5 m3 K4 y2 P' T
6 x! L- F" }2 F2 I3 R
2 a$ u" J+ T3 ~: I8 \+ V" l
$ pm2 restart all                # 重启所有应用4 k+ m0 c+ i* c- u$ }% t+ q9 n
" f' F2 z" s0 W4 f, R" Q! A

9 |4 @9 e  ?# M% S% A  Q1 ]
& t+ b5 j  i' I$ ^  T' M

& a- z) b) b  F$ N9 G7 ?
3 I9 A1 [8 X7 _  c3 S" \7 A1 i+ ^( X' U" J$ M  n: J! n

: w: s2 S' z- P# U: D$ pm2 reload all                # 重启 cluster mode 下的所有应用% v9 x/ G" ?* @/ ~2 `# N! D! L. e' Y
4 @0 g3 z) n- n* i

5 n3 n( I0 x0 S& a: s

5 q- r' l% B. @0 x9 U' i, ~7 p2 y' N: Z5 H

, i# Z$ K8 B# }$ y, \2 Y0 d
( s% ?6 q0 Y& |6 t( {8 w- I2 O* w
& H$ d/ R$ D3 _5 M. d$ pm2 gracefulReload all                # Graceful reload all apps in cluster mode2 f9 h0 c" F* d$ H0 p

; ?8 ]3 ~  o: z+ l. e% r, `0 U6 p

5 P9 j7 v* K: M: J  S- y
; e' t. K& S& {; O( {: ^( `

) o+ j' R' @8 M2 c0 L5 {3 f$ F4 f: m& e* p
: S# c% h4 c- O& u+ y6 b  j

/ n0 L& j' `! J) n4 N$ pm2 delete all                # 关闭并删除所有应用' P# Z; P8 p2 P! p7 F

. P, L1 F# l" |6 H3 v8 }/ ^+ M
9 d+ }' |9 p- ?/ Q5 B- }, X6 h

9 `# \0 @7 O7 Q5 X2 u2 ?8 g" r: i5 G9 @1 e; D6 s

: K7 l9 c3 c  O/ Q& B  Z% [9 x8 j8 g( K! H

9 |4 U% y/ v) k# Z/ s$ pm2 delete 0                # 删除指定应用 id 0' ]. z3 ~2 c0 O6 q6 W
* c: {; h/ L  ]5 t! ]/ i

7 I9 f0 ^5 @( ^$ ~1 g9 E
* P, V! e1 x7 T& J5 g8 V

# o/ e5 [# G  E8 v: h% J$ u! [4 ~. e9 F. C" u+ Z/ m5 `

/ Y- r' e. K6 T5 _, F$ z4 d+ V3 ?) ], i0 M
$ pm2 scale api 10                # 把名字叫api的应用扩展到10个实例
( u! _! |& u6 E- E+ o, J* s8 p( x% ~' G
3 F! l$ d. I, Q+ ~' y

! r8 N! F; B" M9 ?
  X2 k9 i1 P. K% R& A
% y7 u; }+ m0 }

: f" T, m, p" K, n! A$ W  l$ d  u
- S7 ]( s' ^8 Y4 ?9 c& A) E8 x) T* T! `8 J
$ pm2 reset [app-name]                # 重置重启数量/ A0 K* M3 V. n; t6 l; i' y
! ^" W4 F! `, v9 H+ C! V3 O. J- Z
, D* u( V8 u$ P; O: \: F. o* F' }

3 a, P2 Y( b$ x  G- ]9 l2 m  E6 b' H2 a* g4 Q4 K7 X6 y0 C5 u

( U4 e0 r+ `- H& w4 W+ p3 H. ?$ r2 A; Z: a

+ u/ }% x/ R+ I$ pm2 startup                # 创建开机自启动命令
' i; |  c6 q6 f1 N

9 @3 M. l1 X; w  n. L( ^8 c6 H

. T8 Q4 m0 O% F8 y& B
" r; V- N3 k+ [: a: p

3 E" P6 S. {. Y) R6 N% q
: M7 w$ D3 m4 P6 l( N2 J+ d8 y  l  I4 t' A
0 I' M: }* R/ L7 N1 S& L4 J2 }: j- p5 y! k4 C
$ pm2 save                # 保存当前应用列表+ X1 E  |$ u' _: S* q( M$ c8 Y, R

. |/ x9 X/ y% g

/ }$ o6 V5 C1 ^0 Z1 ?' |  N  H1 O$ z
( c. M0 D- Q- _6 n/ M9 i

2 H2 U& _8 B- O$ l* N& S" s9 t* o" z. _' r2 g& z# X

4 E7 h  [# t. a( `9 [1 O
+ Z- T5 n7 F. s( R" |: \2 |$ pm2 resurrect                # 重新加载保存的应用列表
( h9 ^: X. Q3 i/ p

% L% `0 t! j1 |; C+ }
4 P$ Y! f, P& {& r

9 j5 ^( K: ]/ b1 A1 ^! l, C* `! m
/ ]( d, Z7 h; x8 d. b
: m( k& b& e: r0 A) M* e" G4 p+ }4 d% k; y* |

" I; ?5 v$ i% ^, y; v$ pm2 update                # Save processes, kill PM2 and restore processes5 h& t9 `/ U! w3 C) V
' X# k& m- M- ?" O" l
* S% l/ S* q) p, y6 N6 ]* o9 {
: {2 p( z. u) |6 `
8 j9 j) i& n& M4 P8 P

6 T3 X0 `. b- r* s; R" C5 \  I" Q$ V. ~- s7 A
  Z; f0 U: }- ?9 f5 U6 V4 G
$ pm2 generate                # Generate a sample json configuration file, L% u; z9 {* ^: e9 k# k$ N' Y
: J- J" o1 R* [6 y$ M# F
0 [3 g" _# S1 s3 x1 N
9 w1 ^* ?3 k, \) W0 R; ]
举例:3 F/ O( V) z5 T& [, m( t
阿拉德的脚本启动方法
2 ~' G3 j9 p6 K% N* l- m

2 r3 K: m! y/ p( L2 k/ u8 r  Q- d5 n) W% q: D  C' q
; t  P. m* G1 n% \' k
cd /www/wwwroot/gmald/src/ J6 J4 `6 J- s4 G% A; n/ K
5 l% n- F6 c8 C0 T6 \* ~# u+ m1 M

0 \( I- \/ i. q! s

& M; v: i* p' B! ~8 ]
/ o, a; W+ M- H4 r2 k" Z* _$ n+ Z5 P7 O
$ W  P. n3 O. e% o
9 c0 j9 P( Y, \7 L
pm2 start app.js+ N, t$ \4 @) k1 X7 c: _
* i  Z; `8 G/ s

! j& [2 j) S; G  U' c# J
7 c  B& I. B% _: \" w

4 W- H! K. p) L+ j5 j/ m  ]
免责
今日来客 列表模式
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-18 06:39

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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