XFE 技术 生活 笔记 文集

Linux下nodejs运行环境配置

🔖 技术 👀 22 🕒 2019-04-18 👨‍🎓 XFE/Peter

nodejs安装

由于国内环境,以及服务器所属运营商,所以我在安装的时候选择淘宝NPM镜像安装,此前已经安装了nodejs版本,但是由于支持对ES6支持不全面遂准备更新nodejs版本以兼容ES6新语法

检查安装工具

  • centos
    yum -y install wget
  • unbutn
    apt install wget

下载nodejs编译包

淘宝nodejs镜像https://npm.taobao.org/mirrors/node

wget https://npm.taobao.org/mirrors/node/v6.11.0/node-v6.11.0-linux-x64.tar.gz

解压编译包

tar xvf node-v6.11.0-linux-x64.tar.gz

配置环境变量

vim 编辑器使用传送门

vim /etc/profile

在文件最下面添加如下内容

export NODE_HOME=/usr/local/src/node-v6.11.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

此处注意,在服务器不知一个语言环境的情况下PATH变量可能存在多个需要配置的,如果已经存在则将 ‘$NODE_HOME/bin’ 置于最后,并且在前面加上 ‘:’ 就可以了

编辑完成后,保存退出

并更新系统环境变量

source /etc/profile

检查环境变量

echo $PATH

如果输出内容中有刚刚我们在 /etc/profile 中输入的内容,那么可以进行下一步了

检查是否安装成功

node -v

如果显示出了版本既表示安装正确了

pm2 守护程序安装以及使用

切换镜像源

如果你在安装任何NPM包的时候,感觉网速较慢,可以尝试如下的方法来下载淘宝提供的 CNPM 工具替代 NPM 工具

npm install -g cnpm --registry=https://registry.npm.taobao.org

全局安装pm2 

cnpm install pm2 -g
# 备用 npm install pm2 -g

pm2简要教程

pm2 V3 有大改动,以下简要教程以 V2 版本为例
假设当前目录下有一个 app.js 的 nodeJS 文件

启动程序

先来给大家看个例子

命令 说明
pm2 start app.js 启动程序
pm2 start app.js -i=max 根据CPU有效核心数,已多(与核心数相等)进程的方式启动程序
pm2 start app.js -i=3 已三个(如果CPU有效核心数大于等于三的时候,否则已CPU有效核心数为准)进程的方式启动程序
pm2 start app.js --name=serverone 启动程序,并将其命名为 serverone

根据上面的例子,我们来详细的解释下这个通过pm2 启动一个nodeJS程序时需要使用到的命令机器参数:

  • pm2: pm2 命令行工具的名称
  • start: pm2 工具的 启动命令
  • app.js: 程序代码的路径
  • -i=max或者-i=3: -i 表示已多进程的方式启动程序 其中 max3 表示指定的进程数,但是最终由CPU 有效核心数决定,具体规则请查阅实例表格中的说明

停止程序

命令 说明
pm2 stop serverone 停止 被命名为 serverone 的程序
pm2 stop 0 停止程序列表中第一个程序(从0开始为1,以此类推和数组的下标一个概念)
pm2 stop all 停止所有程序

查看程序列表

命令 说明
pm2 list 以列表的形式显示所有程序的状态
pm2 show serverone 查看指定名称的程序状态

监控所有程序

命令 说明
pm2 monit 以全屏控制台的形式监视所有程序

查看日志

命令 说明
pm2 logs 显示所有程序的日志
pm2 logs serverone 显示程序的日志
pm2 logs --line=100 serverone 显示程序的日志

所有日志实例

由上所见,此命令会一次显示 所有程序的状态、所有程序的错误日志、所有程序的正常日志,默认显示 15 行 可以通过 --line 参数设置

而查看指定程序日志时,则指显示 指定程序的错误日志、指定程序的正常日志

重启程序

命令 说明
pm2 restart all 重启所有程序
pm2 restart 0 重启程序列表中指定位置的程序
pm2 restart serverone 重启指定名称的程序

重载程序

命令 说明
pm2 reload all 重载所有程序
pm2 reload 0 重载程序列表中指定位置的程序
pm2 reload serverone 重载指定名称的程序

开启web端口

命令 说明
pm2 web 运行此命令后pm2 将开启一个web服务,访问可获取描述所有程序的状态JSON数据 可通过http://localhost:9615 访问

停止程序并从列表中删除

命令 说明
pm2 delete serverone 从程序列表中删除指定名称的程序,并停止其运行
pm2 delete 0 从程序列表中删除指定位置的程序,并停止其运行
pm2 delete all 将所有程序从程序列表中删除,并停止其运行