你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux下Node.js部署文档

[日期:2016-10-18] 来源:Linux社区  作者:banyejinghungui [字体: ]

常用命令

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

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 h5 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,放到linuxhome目录下

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

wKiom1fU95Dzy-p2AAAGWEzDxPI037.png

wKioL1fU95DBlwEjAAAHEVizK5Y236.png

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 

wKiom1fU99Oh3oacAAAJWfoas9M564.png

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安装成功

wKioL1fU9_2AAZe9AAAxsX0ijFg577.png

wKiom1fU9_6SmtsNAAAJE8VpehI197.png

二、安装 redis

1.yum install epel-release

wKiom1fU-COwqbBnAAAMnbO-nfM950.png

    2.yum install redis

wKioL1fU-FbB-Jh_AAAToTneqfo330.png

Node.js项目初始化

一.下载代码

登入svncheckout最新代码

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

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

wKioL1fU-MmiI1a6AAHO_HKqKoM867.png

二.建立新项目文件夹

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

 mkdir new_project

wKiom1fU-QDQaXV1AAAlzwJ8fqU411.png

三.传递代码压缩包

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

unzip new_project.zip

wKioL1fU-SyxZr8dAAAWzcrLJi0652.png

wKiom1fU-S2AWkAQAAAoUzxO5s0451.png

四.npm安装

new_project下,运行以下命令:

cd /home/zoe-net/new_project

npm install

wKioL1fU-VvzruSqAAANdX9ukSY492.png

wKiom1fU-VuC8ye3AAAdDdhHqIU599.png

安装node-gyp

npm install node-gyp  -g

wKioL1fU-YDiifpKAAAIwXWEixo189.png

(注意:不安装此项有可能出现执行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处为项目需要开启的端口号

wKiom1fU-hDQEjGCAAAN9_739Sw702.png

安装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的地址是否是正确的。

wKioL1fU-rPgpkXGAAAtOCVSaRY689.png

九.初始化项目

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

例如,添加ijhealth 服务监视:

cd /home/zoe-net/ijhealth

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

wKioL1fU-xCiB0kZAAAIwsHrMIQ603.png

注:

Start    代表添加服务

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

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

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

十.查看启动情况

pm2 list

wKioL1fU-zuTq2F-AAAwmZcaI0g466.png

十一.一般操作指令

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

 pm2 restart ijhealth

关闭某个项目

pm2 stop 项目名字

删除某个项目

Pm2 delete 项目名字

十二.查看日志

pm2 logs

pm2 logs 具体项目名称

wKiom1fU-2iBTuXXAAGZzWYAeq4035.png

十三.查看项目端口号

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

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

wKioL1fU-5DRUY8CAAAInbf1Hwc227.png

wKiom1fU-6uRGyj8AAAZH79jti0984.png

常见问题

问题一:日志提示有关时间戳问题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的内容你可能也喜欢

Ubuntu 14.04/15.04 上安装配置 Node.js v4.0.0  http://www.linuxidc.com/Linux/2015-10/123951.htm

如何在CentOS 7安装Node.js http://www.linuxidc.com/Linux/2015-02/113554.htm

Ubuntu 14.04下搭建Node.js开发环境  http://www.linuxidc.com/Linux/2014-12/110983.htm

Ubunru 12.04 下Node.js开发环境的安装配置 http://www.linuxidc.com/Linux/2014-05/101418.htm

Node.Js入门[PDF+相关代码] http://www.linuxidc.com/Linux/2013-06/85462.htm

Node.js开发指南 高清PDF中文版 +源码 http://www.linuxidc.com/Linux/2014-09/106494.htm

Node.js入门开发指南中文版 http://www.linuxidc.com/Linux/2012-11/73363.htm

Ubuntu 编译安装Node.js http://www.linuxidc.com/Linux/2013-10/91321.htm

Node.js 的详细介绍请点这里
Node.js 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-10/136159.htm

linux
相关资讯       Node.js部署 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款