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

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

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

[复制链接]
  • 打卡等级:暂无等级
  • 打卡总天数:275
  • 打卡月天数:13
  • 打卡总奖励:231
  • 最近打卡:2026-03-16 07:39:39
灌水成绩
16820
64
16971
主题
帖子
积分

等级头衔

ID : 1

管理员

积分成就 威望 : 9
贡献 : 9
下载币 : 60
在线时间 : 1392 小时
注册时间 : 2013-9-5
最后登录 : 2026-3-16

发表于 2026-1-28 04:20:13 | 显示全部楼层 |阅读模式
免责
方法一:卸载宝塔安装的PM2管理器,尝试重新安装5.2版本、多试几次,或者重启服务器或宝塔再次进行安装!方法二:自己手动安装PM2  需要先安装npm' r8 ^' U8 F( y" p" E8 v
: J- R- f7 {. C* ^3 S( U/ o

: Z/ x* [0 S9 e+ B
# Q; m1 g- ]1 h1 ?yum -y install npm, t0 B  q- h1 F; q% ~

# `* t, \: a$ d. k% }
3 w; |2 M9 r- C
% K( g6 X! w6 Q/ Z
安装pm2
# k9 l0 c9 N' y$ P+ W1 z+ j, {. |4 n: g0 ?* l+ ]
8 j7 W, C' m0 ]2 h. |) ]& T

- R7 P% ?0 E( l# _" g! I; Knpm install pm2 -g& A5 p% L: V7 e5 e( l
# }4 F+ N% Z1 i! s9 `/ z9 `

3 x4 X# P; N, m4 X! K% b2 [( R7 B& J
& W: {; v3 }( _  ?7 ]
添加配置文件
( n' O- a9 w, F
8 ~5 t# n- x: w+ i
/ v6 g( G- N: e: [
/ S) E; a; D+ a& I  _/ x6 hvim /etc/profile' ?4 f3 l- K1 M/ w0 n) y/ b1 L

- [+ s# p5 k4 FPATH=$PATH:/usr/lib/node_modules/pm2/bin
9 C# x& D3 i8 k% K' r% K, Q, O

: Z6 B8 q$ s% N, N8 Lsource /etc/profile& ~+ }1 B: _" c1 Q
; K- c9 {# T3 j& \$ \" V+ |
2 A1 Q8 v4 T! Q2 |7 |
4 t7 _$ p' A% ~8 Z9 `( ]; y
测试
7 d: l3 G8 c& \& Q
# n3 t$ {. ^( r6 ?* }( e/ Y$ C4 Z" ?' i
2 b4 p1 C4 [6 ?- \( j" p% i
pm2 -v! ^) T7 l6 [& L. P; j( M8 l
. R2 ^! Z  G$ @2 `! j4 `! B4 K* G8 X
9 ~% v) j4 R/ y. f

+ ~) E% O5 g! X+ g% p查看PM2安装路径
4 a; D3 R4 C% Q2 g
5 O0 b: Q# b; Q# y: g9 K$ e, T" b- \; N6 j$ N: ^. }  w

% [# P" o' `# l( O' M; Zfind / -name "pm2"
2 [) I2 U  m% F" j( g! \) L, g
3 T  \& A9 A8 x# q4 n. k5 @0 ]
" g8 ~9 L2 G1 ]

8 O. V' ?3 u( v+ V2 N根据自己的安装路径修改配置文件
[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! [% w& R5 N, k# K" U

6 g4 w3 @8 n; l  C* k, A  _
4 @. F9 M3 X) `7 z5 q
/ `" W! B7 D1 h2 o/ Onpm uninstall npm -g
7 s/ ^( i# w7 N) M, I3 d

& D. z9 s2 f, L$ k3 L5 w+ e6 v0 o

% e- a0 `! V% \6 I' \2 w$ c% l8 w
0 s6 G% u( e6 V1 b6 D& u
安装依赖( B3 b+ {  @. p& B) u

" N) S  H$ _" l& c9 R4 h( o3 z3 q7 b

! |$ S! _& K1 o$ ]* N3 {% t- oyum -y install gcc gcc-c++
4 \6 a$ P( O: C4 N% i
" N& ^' q. a1 a# ]5 S% C

& L7 \- f( B+ k8 ^0 B- \0 D+ l

7 F/ o, C: u' x! Z! ^0 m1 [下载高版本的node安装包
) A- p0 r2 r) h8 J9 g. }
+ P4 c4 L; g; \. P; u
, a3 p7 T, \! p6 ]/ u6 i* A4 ^$ \
6 u6 y5 j0 G' i% e* M/ l5 swget https://npm.taobao.org/mirrors/node/v10.14.1/node-v10.14.1-linux-x64.tar.gz
8 V, w5 @& y) {! O6 `
1 \- w1 o) W# o+ O& k
0 o" l1 m  M$ b

5 j9 U: z- e7 p& _" X解压到相应的目录
2 @5 I  g  m& `+ P( u% x
3 F1 i' c* q( X* J5 ?  y8 k9 C" ^; q. |/ r6 {
' N! u, R) c1 U2 y1 _0 R
tar -xf node-v10.14.1-linux-x64.tar.gz
. U- M) v7 }3 [4 U6 q5 G; \" B: J

5 G  h& G" ]7 r

, x  F3 \9 l0 g& F7 a6 H8 v
1 k8 N4 O. D7 k- ~9 J; @) H  q
重命名: C* _& Q  q# T
: f" @  V- t; q+ z

6 p- S  H4 C) U9 m* H) V! X! Z" g
. b. L8 s3 Y0 n' K- M8 g& y+ zmv node-v10.14.1-linux-x64 node
* @# E+ }5 A1 @' a6 y2 n6 [0 Z3 Q

$ z% _/ g, j$ U5 ]- X5 a' _

& q% a1 A& N5 h/ g7 n8 ]9 S- I
2 U+ }+ I& d) ?8 \, b3 B! c
添加环境变量(根据自己的路径添加)
8 q: C2 A# o7 C( |( `# J7 H7 b% O9 U
4 b- ~/ p/ i+ Q8 s* o$ X: U
. L) b/ j: i+ p3 }- s3 C  G* q) x( B* A8 d
vim /etc/profile
/ A7 N2 S. w8 e8 p3 B
2 c# J" N# @4 f( Q+ h8 j$ L9 E
export NODE_HOME=/myinstall/npm/node
( e; E, V  Y3 N$ a( x4 ^

9 _+ X1 u/ ]6 t: A% M& }, o% q9 G+ Gexport PATH=$NODE_HOME/bin:$PATH1 K7 D  R  x" D
+ L1 ], k" U" a# p! |( {3 k" L
5 K  X- h- k% T- \

  c, S5 O  {1 V6 a7 l, ^重新加载环境
- {6 a" D' r" h) F+ T0 F: ~# z, e, g& U) k- @, M5 U

! X2 T) H8 @: q% A2 S/ u( {$ i
5 s& m4 b8 r7 w: n! F3 Fsource /etc/profile
/ X) k. H3 h& i" E* |7 T

3 p& P! X& ]( P. W" b5 J
5 w. i6 J% O, ^- L

5 s1 A3 C/ K0 g+ T  E* n9 ]( |5 K; i查看相应版本
[color=var(--focus-color)][url=][/url]
安装pm2
: M- Q3 F, m( H, n
$ l3 C# p( k; s3 Z+ S' ~7 |. |6 j2 o% m) f7 Z7 E: J; o
: c# D4 C+ q  E7 p, N5 i; H
npm install pm2 -g
9 F- P7 N1 O" _: M
2 \  v! `8 v+ A1 i$ z% ^

' Z6 n' E/ L; G6 {. I. O/ E) U2 a
0 G: Q& y" l) u8 d" K) X
检测
  a$ q- z8 V5 g
& o/ k" ^% k6 N) M5 t1 O/ s8 h2 L- w& Q$ v7 h

+ Y9 o' N" O$ w$ m: A9 y% G' _pm2 list
% }) ?  ~$ l  P) i  q" s. \, f$ R
* B( b/ m* x, n5 F5 C! l- B8 L
* S. }5 L, ^, L- U) ]& N  K4 j

2 _% b3 W* x' c
[color=var(--focus-color)][url=][/url]
常用命令
6 S' y& @, B; L: I$ h. a4 D" o) v0 R, ?* ~( m7 f% }

5 k) M& e1 ]. @- I/ g9 z! G. _) e: }8 z7 w2 h. D/ U. g1 p
$ pm2 start app.js                  # 启动app.js应用程序
1 e" ?8 G& W- W4 b1 |: d
+ v9 e9 v  `9 X! @2 l
. a0 h. }- ]& @' M
/ z6 b. d0 E! ~; W# G& }' h, B

4 n' v% r) U3 J3 Z5 t: S4 k7 X
$ W) _* \+ X- ?  V7 U. q9 @, i
2 |5 k( ?- x6 B0 u9 i! P& a" l
( e; l) O6 V* w, y# X4 ?- \: {0 y8 f$ pm2 start app.js -i 4                # cluster mode 模式启动4个app.js的应用实例 # 4个应用程序会自动进行负载均衡4 \6 W. ~5 E1 \  A. ^( ~4 T' w

9 B. K% l! G- u$ }* j$ `

, d! p/ y  P! O- W

0 m3 ]( J! U3 }5 g; J6 h8 D$ ~- N% G6 ]& Z/ K% V

5 h: X* g. m* {' r( P& h* V
% z7 k( G9 v) S4 O
' W4 ]. W  v& F7 l  |3 A! K$ pm2 start app.js --name="api"                # 启动应用程序并命名为 "api"; }9 b8 X$ V8 T0 i# J& H
2 u/ D+ a4 y  E! w6 R# t* U

) w3 a. f" P8 L( O, w" L! ~$ j: p
2 u, |) \* J8 I0 S. _4 F

+ E, {2 [3 e9 R9 E
( I! p1 Q$ `5 ]# v8 m0 U' Y% ~
2 A# b9 e* u1 M6 X9 H4 K5 z6 _. g1 d; Z% ?% y2 {- O
$ pm2 start app.js --watch                # 当文件变化时自动重启应用+ B0 [9 j4 b1 D  Y% m4 U

& |* k% l5 Y) o0 [: ?8 _7 O; k
! b: z7 w  e" t! j' H
+ R8 z6 |3 F  ~
% a' k6 A3 u/ i. u1 U' w% j

- H3 C0 v4 O, I/ W" A$ g3 J9 ]8 q' m% d7 K

* T& W" {1 K5 [5 E+ E1 r$ pm2 start script.sh                # 启动 bash 脚本- U0 G6 b4 m; T- ^' s
) L2 |% u4 t  r4 f$ ~& z5 X
. t/ u0 @" X) e& g5 U
0 G7 U# G0 E+ [# M8 g- l8 s. ?0 R

& K; A/ L9 C3 }: U# G
% [: ~1 Q3 P  r0 y) e% g& p' v: [* T' h3 o9 w

7 f5 k3 b2 _1 {. U$ pm2 list                # 列表 PM2 启动的所有的应用程序
! |: j* n4 D4 l# K
( M6 ^# K" ?$ Y4 C& r7 {, a
" T4 c( K6 M. a, W/ b6 Q' ]6 q
! s2 S( D  s+ w  o7 {6 k6 o1 K; G
6 v1 l; m+ D7 U$ T, f/ e4 R) p

9 o( M) b6 X: i& }6 s2 V$ O/ h7 c/ i& Q; J
+ `1 Q* f! M. M6 p
$ pm2 monit                # 显示每个应用程序的CPU和内存占用情况# I4 y$ |7 Q1 u+ E

( M6 l* Q. S* `1 d' w2 r9 e1 D

: r6 D1 @3 Q0 S. T! V; @* \

" Y& Y# w- M  b. z9 I1 Y8 E# c! \; ^' H1 {1 K$ o; S

" l) H: a8 k) ^9 `6 F6 \  {: I/ ?5 E& R! C: L- z7 x& D) o

8 ]2 m6 {) K* [" w2 s$ pm2 show [app-name]                # 显示应用程序的所有信息
1 Y5 t( a. S9 B7 y$ t' h& ^) R4 ]" h
# g5 W+ Z# Z- g5 S0 c* P/ M
# |8 l/ s2 }3 d/ v0 P, t/ E

. V0 x5 u) v* x  y" @1 y& }9 z5 F$ Q4 L9 @% L

' M* {% q. L, A/ |/ A, Q
* h7 D! G0 h, u1 h3 Q' u: w+ W8 @) t/ _; ~! f
$ pm2 logs                # 显示所有的应用程序的日志$ F! ?6 g& k& d) a" i  H5 |

+ I# Q- f9 a! S" Y8 v/ X2 |, `4 M5 ]
: q/ L( L( D. N3 M2 [/ I2 A) h

' e6 W& D  `; `' O  ^$ B
4 \* q) o% m3 C; I
) B2 z7 D5 ]$ f" v( s9 b  H9 M3 J8 t$ ]2 J/ Q3 B3 E/ Z( M

$ U6 g% L- F' w$ H# y2 F$ pm2 logs [app-name]                # 显示指定应用程序的日志
' b. z8 H8 b6 @3 i3 s

" V7 P2 o9 k0 D6 i

- t! \" C. Z! Q& G( g' |8 k8 ]

) k7 z3 w1 T- t+ \; |
" ?' ]. M6 K0 L& _
  U# B( h, W) x3 r! k9 k3 u. A
: b( U9 n, ?3 s. t0 X: K9 @6 H* D% e; V/ p, U3 T
$ pm2 flush0 d: Z. m6 G8 B$ X* _

0 D6 Z4 F* Y8 i' z1 j  I

# ]) |$ v3 i# K

  D. ]4 ]9 u! ^# L+ q- z# g
8 ?# P% P9 F7 Y6 U& A# A
. v& h, w2 v3 c- i) j* A6 }7 c4 O+ p* X: W% j) ~
7 m2 @" O) p- W4 P- R3 ^
$ pm2 stop all                # 停止所有的应用程序
4 M2 _1 M0 X9 \0 ?

; ^! _- p; [) {* f7 O) y

) z) i* L: f) G" {" D$ u% F

( @$ n$ C2 g- L; o. e' v* D9 i; \/ q* s( I2 D4 y

" ~$ }2 s" w- G: ]2 j" g/ r
6 W/ ?  h6 ]6 t# }* S) N
. n% B8 u& e2 k8 r- m* Y3 K; Q$ pm2 stop 0                # 停止 id 为 0 的指定应用程序
+ s! _8 S1 l9 K7 ~* l
: ?6 P, T+ f. v# K* o+ Y5 G8 K
8 \' F* t' y2 K: g# J' S- s

( L% ~7 m7 |7 S0 T0 g* M( C2 K% |& J
' Q. v+ J# U2 L1 h: K- @; Z* y  Y; a9 P- z2 G' N

& `3 N* {8 O# \
8 ?6 }* {( J/ _* |# _$ pm2 restart all                # 重启所有应用2 T/ {; x8 a# g* {$ V2 o! C" b

* a* K) c3 |5 V. A, _8 h5 Z- Y; p
; z1 t4 j  ^; @8 C7 A0 o- |

" U2 i- l& ~% X; y7 z; x: b5 U; O) h, U* G
5 G" z' e2 D0 j) l) G4 x
! J% W8 G3 U5 w. ]# J& B* u- o

& @/ Z$ C8 ~6 h  I  g3 I$ pm2 reload all                # 重启 cluster mode 下的所有应用4 y' y0 e5 |9 x8 ?9 `$ ?: F: g

0 l) v0 d6 P, b9 @6 h" K
" J8 {  p3 f+ g+ K$ K5 u
1 G) [% i/ A4 G4 s9 @
/ a' ]) Y5 F# I  f  o' e. L+ Z/ y, `
$ u9 S& y4 R3 ?& f, m

0 H# Q  I0 S' t, K- ^3 K
  P: A+ Q; M& L$ pm2 gracefulReload all                # Graceful reload all apps in cluster mode
+ w2 d3 i, W0 F( x" [( n5 z
8 \9 Z- _4 J# G3 x; o& O, d
; I3 ^: Q+ s8 O5 A0 y* a9 f
5 ^3 v4 _1 e: p) S% F
% x  W+ \0 `: C1 N6 Z- B
7 }: ^* _* E3 U8 Z. Z
0 S; B# V3 s( R1 F

! {3 v* n* q% G9 e2 q9 c/ O$ pm2 delete all                # 关闭并删除所有应用
- A. @( [# X3 P! C* d( C/ K0 `

  Q/ `, {0 X' X% W; R
. d- r( G+ {% ~
. c7 F  A" g. ?9 r2 g1 ^
/ J9 c* c# _, V) Y  [' n! ^

, S! f# l5 o+ g/ |- c4 }+ M6 x) S: Q* @2 n
9 y& A% a8 `, n- k9 @9 w8 ^0 F+ K/ c! |" E2 m" G' }2 c3 S3 u
$ pm2 delete 0                # 删除指定应用 id 0& ?+ b+ h2 c2 _0 D

  b5 d+ o% H5 r9 M- s! X

! X7 g8 N8 f4 ^! D! l

1 I+ f8 v3 e' |% t, F4 M3 P; }& M, K  a

' |/ `) M; d9 ?+ G/ F, q
4 n* i$ i/ z: m: b
7 f8 S2 h$ S; D7 g* e0 a$ pm2 scale api 10                # 把名字叫api的应用扩展到10个实例
3 x9 j: w' P! M; z( e, Y

7 C7 b" [2 C% y/ M  y
3 N) _  k7 G( S

& w7 K2 _9 g' ?# _" G1 ~! {4 i" E1 f! [
. x1 a* u5 ~6 [) j4 ?3 s
0 z0 `. p: ^3 Y! m2 z

) k3 f! a, y# c" `8 P$ pm2 reset [app-name]                # 重置重启数量6 A- j- L% I0 l6 ^( M0 i5 b

4 U- H1 N. Z- p6 n+ `/ t5 p
( x- F$ N: x2 J$ k
' d) e- |. ]# V* o
8 ~! x. v  w/ h1 f. l: Z& Z. e

( j! u2 {4 \* R: a! x1 V5 k; [& f# j  v
1 m2 f  m! e+ Y5 J8 T9 t# b# F
$ pm2 startup                # 创建开机自启动命令. S, T0 B* T/ z: D$ m- g
# O& _9 F8 X: {2 Z% w2 `# ^4 `' F9 j
; c, ]0 M4 Y! b" [; v

" L, @+ H. ~: t3 O, j8 `
" E) m" }) \" e8 N/ ?' X0 ], [0 S
" K( Q  Y% c( |9 F8 W( f  ?
% u9 r/ e1 A/ b5 D. \
2 B0 G9 X* P) C$ Q$ pm2 save                # 保存当前应用列表
5 u" C: \% w3 ^8 \# l6 j
3 D. g$ \0 }& N8 C- V" V
* S0 r# Q! ?2 [; @' t$ X" n- J4 |2 ?  I
, J5 ]4 m7 _) ~1 \1 _# f
# m  M  U$ ?0 [% J! \' h. F

" {# ]# S/ J* ?/ Y4 Q! T4 a& w
. P+ |: M3 l. Q$ J$ m* r+ C& G! J% J  c$ u# F" F" n5 p
$ pm2 resurrect                # 重新加载保存的应用列表
0 F! B3 G. b* v! C, G
' N& T5 e1 p: a/ h# A4 X2 Q6 ]
+ ]- D9 s& g% v; i

* a# d' c! I1 Q* v( u
7 a. \, R* k- Y# O( E8 J! B. c$ E! |, i

) s7 G+ X$ }& E6 c! h5 b+ b5 K
7 \. @6 _- S4 g! a9 Z0 _) ^7 m$ pm2 update                # Save processes, kill PM2 and restore processes
6 t" J( n. o) O/ I0 |  B# c  C  {7 M

  K8 t1 l& t/ b% Z

/ w/ }5 \+ h/ \7 E3 F7 ^

& l; v& D" u8 q4 t/ Q8 |9 E4 U
( h! F$ m  x) `* K/ {
% ~/ r6 M8 D# a
, _  ?- m& s" u6 f! H% Q  ?" u# ]7 k
* t" [  b& u0 s$ pm2 generate                # Generate a sample json configuration file6 ?0 T+ l8 G' q0 D
. Q+ W( ^* e" ]# z% `% \

/ _% U0 B3 R! \0 K8 ]; c

( A$ }2 f1 H' F
举例:
0 S  Q9 S5 O% X/ G% J阿拉德的脚本启动方法

/ N* L# c: Q' c( l/ b4 c, j9 r
+ }+ x2 ^* e$ m1 m& o5 i6 I
8 M, ~% f0 f4 ?! K3 a2 E8 c! G5 i* H# r" H
cd /www/wwwroot/gmald/src
  _3 L' O  F- ~: P; q/ W

) F/ a" z1 O+ P+ b" O6 }4 M: Y
' t: o# A3 O. S( m1 M

& @& S" @3 J1 P. M1 |: W
( e  I$ J8 X+ r" A7 y9 t$ Y2 ?
2 d: ~# g2 u  ?" `! d1 m  R, G% |& g. A# P

% s8 U2 ^( y6 j7 _" G$ a# |+ Ypm2 start app.js& S1 K6 n9 b) o5 d
* O6 E/ t5 T+ G6 e- u& q" i
% B  m" {+ |. Y0 P; c- O! O
/ O: R9 p3 ?+ V) z* J* W. w; U- N: A

/ @! _2 F- T7 e! u3 n
免责
帖子地址打造全网最多免费游戏网站
今日来客 列表模式
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-16 17:47