node.js部署文档(Linux版)

常用命令

新建项目(需要到该项目文件目录下执行,否则日志会报错)

创新互联是一家专注网站建设、网络营销策划、小程序开发、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立10余年以来,已经为上千余家成都广告制作各业的企业公司提供互联网服务。现在,服务的上千余家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。

pm2 start bin/www  - i  max  - - name  ijhealth

只开启一个线程

node  bin/www (没有进程守护)

开启项目

pm2  start    项目名称  

关闭项目

pm2  stop    项目名称

重启项目

pm2  restart  项目名称

删除项目

pm2  delete  项目名称

列出项目

pm2  list

查看进程详细信息

pm2 show 0  /   pm2 info 0   (0为进程ID)

查看日志

pm2  logs    项目名称

清空日志

pm2 flush

重载日志

pm2 reloadLogs

升级PM2

npm install pm2@lastest -g  (安装最新版本)

pm2 updatePM2    (升级pm2)

查看帮助

pm2 --help

修改npm源

npm config set registry="http://registry.npmjs.org" 

或者

npm config set registry="https://registry.npm.taobao.org" 

 

 

注:所有pm2 命令都可以用all来对所有项目执行操作,比如删除所有项目,可以执行以下语句

pm2 delete all

 

注:node.js有保护进程,如果要停止一个项目,需要用pm2 delete删除,而不能用kill杀进程,否则kill完还是会有进程产生。

 

环境安装

操作系统:Linux h6 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

 

操作步骤

Node.js 环境搭建

一.安装node.js

1.直接从网上(http://nodejs.cn/download/)下载压缩包node-v6.2.0-linux-x64.tar.xz,放到linux上home目录下

 

2.解压压缩包到/home/node下

cd /home

tar -zxv -f node-v6.2.0-linux-x64.tar.xz 

mkdir node

mv node-v6.2.0-linux-x64   node

node.js部署文档(Linux版)

node.js部署文档(Linux版)

3.设置全局变量

ln -s   /home/node/node-v6.2.0-linux-x64/bin/node    /usr/local/bin/node

ln -s   /home/node/node-v6.2.0-linux-x64/bin/npm     /usr/local/bin/npm 

node.js部署文档(Linux版)

4.设置环境变量

vim  /etc/profile

    在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

    #set for nodejs

    export NODE_HOME=/home/node/node-v6.2.0-linux-x64

    export PATH=$NODE_HOME/bin:$PATH

    :wq保存并退出,编译/etc/profile使配置生效

  source/etc/profile验证是否安装配置成功

node  -v如果看到版本号,说明node安装成功

node.js部署文档(Linux版)

node.js部署文档(Linux版)

二、安装 redis

1.yum install epel-release

node.js部署文档(Linux版)

    2.yum install redis

node.js部署文档(Linux版)

Node.js项目初始化

一.下载代码

 

登入svn,checkout最新代码

(例如:https://svn.dev.zoenet.cn:8443/svn/juyihui/client/web/zoe-jxcoverage-app/trunk)

下载的所有文件夹和文件到本地,并将这些文件(除了.idea和node_modules,因为这两个文件在之后运行npm install时会安装)压缩成一个zip安装包

node.js部署文档(Linux版)

二.建立新项目文件夹

在/home/zoe-net(此处为本例常用项目存放处,可根据实际情况自定义)下,新建一个项目文件夹,命名为项目名

 

 mkdir new_project

node.js部署文档(Linux版)

三.传递代码压缩包

将压缩包传到/home/zoe-net/new_project 下(可以使用rz命令上传文件),并将压缩包解压到new_project文件夹下

 

unzip new_project.zip

node.js部署文档(Linux版)

node.js部署文档(Linux版)

四.npm安装

在new_project下,运行以下命令:

cd /home/zoe-net/new_project

npm install

node.js部署文档(Linux版)

node.js部署文档(Linux版)

安装node-gyp

 

npm install node-gyp  -g

node.js部署文档(Linux版)


(注意:不安装此项有可能出现执行npm install进程卡住的问题 )

 

再安装ccap

 

npm install ccap

 

还需要安装git, gcc

$ npm update minimatch

$ npm -v minimatch

2.10.1

$ npm install -g npm@3

/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js

npm@3.10.5 /usr/local/lib/node_modules/npm

$ npm install -g minimatch@3.0.2

/usr/local/lib

└─┬ minimatch@3.0.2

  └─┬ brace-expansion@1.1.6

    ├── balanced-match@0.4.2

    └── concat-map@0.0.1

 

$ npm -v minimatch

六.关闭防火墙

 

firewall-cmd --zone=public --add-port=4100/tcp --permanent

firewall-cmd --reload

 

注:4100处为项目需要开启的端口号

node.js部署文档(Linux版)

安装cnpm

npm install cnpm -g

 

修改注册表地址

cnpm config set registry="http://172.16.34.248:7001/"  

(以上IP地址根据自身情况而定)

cnpm config list

 

安装zoenet-itom项目

cnpm install zoenet-itom

 

安装ccap

cnpm install ccap --save

七.安装PM2

之后很多操作都需要使用PM2的强大功能,这里需要先安装pm2

npm install -g pm2

 

 

八.修改配置文件中redis地址

确保配置文件中redis地址正确,配置文件config.js地址位于

项目名称下的app/config下,如果redis安装在本地,可以将

host:"localhost" 前的//去掉,在原本的host前加上//

注:一般情况下如果发布后网页卡顿无法打开,日志又没有报错,就要看看redis的地址是否是正确的。

 

node.js部署文档(Linux版)

九.初始化项目

 

注意,初始化时需要进入指定项目的目录执行,否则可能会产生日志错误

例如,添加ijhealth 服务监视:

 

cd /home/zoe-net/ijhealth

pm2 start bin/www  - i  max  --name  ijhealth

node.js部署文档(Linux版)

注:

Start    代表添加服务

www           是bin文件夹下一个相当于执行监视的插件服务

-i3             代表监视三个线程,一般js只用到3个以内的线程,也可以用max,表示使用最大线程数

--name ijhealth   自定义监测list中所监测服务的名字,一般和项目名称一致,方便区别

 

 

十.查看启动情况

 

pm2 list

node.js部署文档(Linux版)

十一.一般操作指令

 

一般项目都在启动中,可以用重启命令,重启某个项目。例如,重启ijhealth

 pm2 restart ijhealth

 

关闭某个项目

pm2 stop 项目名字

 

 

删除某个项目

Pm2 delete 项目名字

 

十二.查看日志

 

pm2 logs

pm2 logs 具体项目名称

 

node.js部署文档(Linux版)

十三.查看项目端口号

 

例如,要查看ijhealth 项目的端口号,需要进入项目的文件夹中,查看bin/www文件

 

 cat /home/zoe-net/ijhealth/bin/www 

node.js部署文档(Linux版)

node.js部署文档(Linux版)

常见问题

问题一:日志提示有关时间戳问题“com.zoe.timehash.zip”

答:需要在对应项目下node_modules文件夹中添加com.zoe.timehash时间戳。(该时间戳的获取可以直接从已有的项目下复制黏贴)

例如:/home/zoe-net/zoenethospital/node_modules/com.zoe.timehash

 

问题二:npm连接错误“Error: connect ECONNREFUSSED....” 

 

答:问题的原因是npm源指定问题,解决方法是重新指定npm源地址。npm config set registry="http://registry.npmjs.org" 

如果上面的npm地址不行的话,大家可以试试淘宝的npm,非常稳定:

 

地址:https://registry.npm.taobao.org

 

问题三:node.js项目启动了,pm2 list显示online, pm2 logs没有报错,但是就是无法访问页面,像是卡住了(有时候可以访问,有时候不行访问)

答:首先,先检查一下对应端口有没有开(端口号可以在bin/www中或者app.js中查询到),如果有,再检查一下对应的端口号是否已经被占用或者和其他应用程序冲突(可以pm2 stop项目并且pm2 delete项目,然后netstat -nltp看一下端口是否还在)。如果以上检查都没有问题,有可能是因为redis地址设置问题。先检查redis是否开启,如果开启,再到项目文件夹下app/config中的config.js里查看redis的地址是否指向正确。

 

 

问题四:Error: Cannot find module‘express-session’

答:只需在对应项目文件夹下运行npm install 命令就好


网站题目:node.js部署文档(Linux版)
本文路径:http://hbruida.cn/article/ghhdhp.html