最近做一个银行的项目,银行的服务器是鲲鹏ARM架构的服务器,并且是麒麟v10的系统,这里记录一下在无法访问外网安装 pm2 的方法。
其他文章:
鲲鹏 ARM 架构 麒麟 Lylin v10 安装 Mysql8.3 (离线)-CSDN博客
鲲鹏 ARM 架构 麒麟 Lylin v10 安装 Node 和 NVM (离线)-CSDN博客
鲲鹏 ARM 架构 麒麟 Lylin v10 安装 Nginx (离线)-CSDN博客
鲲鹏 ARM 架构 麒麟 Lylin v10 安装 PHP 和 adminer (离线)-CSDN博客
下载 pm2-5.3.1.tar.gz
github:https://github.com/Unitech/pm2/tags
安装 pm2-5.3.1.tar.gz
先在一个在线的服务器上安装pm2,需要有node和npm的环境
npm install -g /root/pm2-5.3.1.tar.gz
确认pm2的安装位置
npm list -g pm2
我的位置是/root/.nvm/versions/node/v18.20.1/lib/node_modules/pm2
进入node_modules把这个pm2目录打包
tar -czvf pm2.tar.gz /pm2
把打包好的文件下载到本地并上传到离线服务器的/root目录下,在root目录下解压
tar -xzvf pm2.tar.gz
查找离线服务器的node全局安装目录
npm config get prefix
把pm2放到node当前版本的lib/node_modules目录下
mv /root/pm2 /root/.nvm/versions/node/v18.20.1/lib/node_modules/pm2
配置环境变量,永久生效
echo 'export PATH=$PATH:/root/.nvm/versions/node/v18.20.1/lib/node_modules/pm2/bin' >> /etc/profile
source /etc/profile
验证 PM2 是否安装成功
pm2 -version
启动 Node.js 应用,bank 是自己node项目package.json中的name
pm2 start npm --name "bank" -- run start:prod
配置 PM2 开机自启动
保存当前 PM2 进程列表
pm2 save
生成开机自启动脚本
pm2 startup
查看当前用户
whoami
查看当前用户的主目录
echo $HOME
执行生成的脚本,-u 后面的参数是 whoami 命令的输出,--hp 后面的参数是 echo $HOME 命令的输出
env PATH=$PATH:/usr/local/bin pm2 startup systemd -u root --hp /root
停止nodejs应用
pm2 stop bank
启动nodejs应用
pm2 start bank
删除nodejs应用
pm2 delete bank
重启nodejs应用
pm2 restart bank
查看nodejs应用状态
pm2 list
查看nodejs应用日志
pm2 logs bank
查看nodejs应用信息
pm2 show bank
取消开机自启动
pm2 unstartup systemd
测试项目
测试项目是否正常运行,要确保安装了node和npm,并且同学们有自己的一个node项目
我这个项目基于nest,所以需要创建好数据库,然后配置好.env文件
打包当前 Node.js 应用
npm run build
把打包后的文件上传到服务器的 /home/www/wwwroot/baswei 目录下,这是我自己创建的目录
把package.json文件上传到服务器的 /home/www/wwwroot/baswei 目录下
把 .env 和 .env.production 文件上传到服务器的 /home/www/wwwroot/baswei 目录下
进入 /home/www/wwwroot/baswei 目录
cd /home/www/wwwroot/baswei
安装 Node.js 依赖
npm install
启动 Node.js 应用
pm2 start npm --name "bank" -- run start:prod
验证 Node.js 应用是否启动成功
curl http://localhost:3000