2017/7/5 17:32:30当前位置推荐好文阿里云问答浏览文章

d1dd27310a55b3193a48f1fd4aa98226cefc17a7.jpg

前言

踩了不少坑~网上感觉帖子都不太全~自己撸完之后把服务器初始化又重新撸了一遍。就有了这篇文章。

本文主要只介绍了怎样使你的云服务器支持node环境。并不包含node.js具体代码。照撸之前、请自己写一份监听端口的文件备用。

1、买个服务器

没啥说了吧、记得服务器的密码就行。

2、登录服务器

  • 远程连接到你的服务器
    sudo ssh 公网ip//如果你发现密码不对、也可以用root登录试试sudo ssh root@公网ip
    先输入mac密码、再输入服务器密码

3、安装node

既然是用node.js进行服务器配置。当然要先安装node.js

1、先检查一下g++能否完整

因为我有一次安装的时候提示g++: Commnot found导致安装失败。所以还是提前检查一下吧.

g++ --version

如果已经安装。你就可以去安装node.js了。

如果没有
//yum 安装g++时,用yum list的程序名不是 g++,而是 gcc-c++,这个真的很坑。  yum install gcc-c++

2、下载安装node.js

可以使用yum进行安装、但这里不推荐

其一是安装不了太新的版本、而且不能更新
其二是yum安装不会主动检查运行环境、以后麻烦

使用wget命令下载安装

//选择你的源码路径cd /usr/local/src///使用wget下载wget https://nodejs.org/dist/v8.0.0/node-v8.0.0.tar.gz//解压tar xvf node-v8.0.0.tar.gz          //进入文件夹cd node-v8.0.0//依次执行./configure make && make install

make的时间会很长、你可以看个电影或者电视剧~
安装成功之后、查看一下node版本确认能否完成:

node -v

4、上传node代码

我用的是webstorm、具体看截图吧。
>


屏幕快照 2017-07-04 下午5.44.29.png
屏幕快照 2017-07-04 下午5.45.40.png
屏幕快照 2017-07-04 下午5.49.50.png
屏幕快照 2017-07-04 下午5.50.27.png

这样就已经配置完了


屏幕快照 2017-07-04 下午5.52.41.png
屏幕快照 2017-07-04 下午5.53.25.png
屏幕快照 2017-07-04 下午5.54.30.png

5、关于服务器端口监听

在保证本地监听可以启动的情况下、如果修改成公网ip进行监听出错。

listen EADDRNOTAVAIL 47.94.210.34:8080

屏幕快照 2017-07-04 下午5.59.13.png

解决办法

1、你可以尝试监听全部IP地址

你可以listen(port,.0.0.0.0)、或者干脆listen(port)、具体为什么不能监听上面那个、我也不清楚、但0.0.0.0肯定是万能的解法。

以下为开发文档原文
 server.listen(port, [hostname], [backlog], [callback])#Begin accepting connections  on the specified port hostname. If the hostname is omitted, the server will accept connections directed to any IPv4  address (INADDR_ANY).

也就是说如果不填写主机名 hostname 字段、默认是监听 INADDR_ANY 、也就是任意的IPv4地址。

2、如果上面还不好使。你可以尝试修改服务器的安全组配置

WechatIMG225.jpeg
WechatIMG227.jpeg
WechatIMG226.jpeg

6、通过pm2让node.js程序常驻

通常我们启动node程序就是直接node xxx.js
但是控制台是不能退出的。pm2可以帮我们解决这些问题。


屏幕快照 2017-07-04 下午6.15.01.png
安装pm2
npm install -g pm2//或者npm install pm2@latest -g
启动pm2
pm2 start form.js --name my_form

启动成功


屏幕快照 2017-07-04 下午6.24.26.png


可以你也可以查看当前进程状态

# pm2 list

屏幕快照 2017-07-04 下午6.26.47.png


请忽视我这个errored、因为是同一个文件、所以端口重复监听了报错。不过从这个15次重新运行上看、mp2的这个功能应该是默认的。

然后、关于怎样设置开机自启动程序。
pm2 start form.jspm2 savepm2 startup

重启服务器再次查看list、就会发现列表内的线程已经启动成功了。

7、通过npm进行node版本管理

我本地的node是通过brew安装的。但是这个brew在服务器上死活搞不上去、所以才用的安装包。
但不能每次更新也都用安装包配置一遍。

于是、该我们的npm登场了。
  //首先安装n模块:专门用来管理node的工具    npm install -g n  //你可以查看所有的node版本。本地版本会加粗显示、当前使用版本会有圆圈标注。  n ls  //下载指定版本的node  n v7.10.0  //选择当前部署版本(上下按钮选择、回车确定部署)  n

赶着下班、我就不贴图了。自己试试就知道了。

最后

至此、你的阿里云上已经成功搭建好了node环境并且可以像你本地一样工作。
如果上述过程中出现了什么问题。欢迎留言。

网友评论