总结Centos下安装nodejs并配置环境,记录成功安装的方法。推荐的安装方法是利用已编译的二进制文件安装,不推荐使用源码的形式安装,一是源码安装比较麻烦,二是需要自行下载编译浪费时间。
安装nodejs
访问nodejs的官方网站的downdolad,网址:https://nodejs.org/en/download/ ,可以看到最新的nodejs下载,包括不同的版本,截图如下所示。
根据linux的不同版本选择32位或64位,因为我的linux的虚拟机是64位的,所以我选择的是64位二进制安装文件(Linux Binariesx64),可以右键选择在新窗口中打开链接,复制下这个地址: https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-x64.tar.xz;
回到linux虚拟机,在控制台输入
# wget https://nodejs.org/dist/v6.10.1/node-v6.10.1-linux-x64.tar.xz
系统将会下载这个文件,可以选择下载到默认路径。成功下载,在命令行输入命令可以查看到文件。如下图所示。
根据下载的文件可以看出它的压缩方式是 .xz
的方式,所以不能直接使用linux命令tar直接下载。需要下载能够解压这种格式的工具。我们可以使用yum源来安装,控制台命令:
# yum search xz
# yum install xz.i386
# xz -d node-v6.10.1-linux-x64.tar.xz
# tar -xf node-v6.10.1-linux-x64.tar
# mv node-v6.10.1-linux-x64 node-v6.10.1
当然好像也可以用 tar 来解压文件
# tar -xf node-v6.10.1-linux-x64.tar.xz
# mv node-v6.10.1-linux-x64 node-v6.10.1
在控制台输入 yum search xz
,在搜索到的列表中选择安装软件,如 yum install xz.i386
,解压完成后文件变为以 .tar
后缀,使用 tar -xf node-v6.10.1-linux-x64.tar
解压文件。
可以更改文件名方便操作,在命令台输入 mv node-v6.10.1-linux-x64 node-v6.10.1
,更改文件名为 node-v6.10.1。
为了验证是否能够使用node,我们可以输入 cd node-v6.10.1/bin
,输入 ./node -v
查看node版本,安装成功则能够成功显示node版本。如下图所示。(截图中的node -v应该为./node -v,因为是后面截图的)。
配置nodejs
要想node能够在全局能够使用,需要添加连接,在控制台输入下面命令能够实现。其中“ /root/node-v6.10.1/bin/node
”为二进制nodejs文件的目录,根据上面的步骤,我这里是直接解压到了root目录下,所以路径为 /root/node-v6.10.1/bin/node
。
ln -s /root/node-v6.10.1/bin/node /usr/local/bin/node
ln -s /root/node-v6.10.1/bin/npm /usr/local/bin/npm
配置完成后即可在任何目录下使用node命令。
后台运行
利用Linux本身后台执行的特性
使用&符号后台执行,并利用nohup命令实现进程禁止挂起
nohup node app.js &
使用forever让node.js持久运行
npm install forever -g #安装
forever start app.js #启动应用
forever stop app.js #关闭应用
forever restartall #重启所有应用
#输出日志和错误
forever start -l forever.log -o out.log -e err.log app.js
# 指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log
forever start -l forever.log app.js
# 指定app.js中的日志信息和错误日志输出文件,
# -o 就是console.log输出的信息,-e 就是console.error输出的信息
forever start -o out.log -e err.log app.js
# 追加日志,forever默认是不能覆盖上次的启动日志,
# 所以如果第二次启动不加-a,则会不让运行
forever start -l forever.log -a app.js
# 监听当前文件夹下的所有文件改动(不太建议这样)
forever start -w app.js
# 显示所有运行的服务
forever list
######停止操作
# 停止所有运行的node App
forever stopall
# 停止其中一个node App
forever stop app.js
# 当然还可以这样
# forever list 找到对应的id,然后:
forever stop [id]
# 开发环境下
NODE_ENV=development forever start -l forever.log -e err.log -a app.js
# 线上环境下
NODE_ENV=production forever start -l ~/.forever/forever.log -e ~/.forever/err.log -w -a app.js
#上面加上NODE_ENV为了让app.js辨认当前是什么环境用的
运行forever报command not found
使用root用户安装 forever:npm install -g forever
。然后运行forever, 报错command not found。
查了一下应该是forever目录没有配置在环境变量中。npm list -g -depth 0
查看forever被安装在哪个目录下。
然后直接使用绝对路径运行forever。