前言
踩了不少坑網(wǎng)上感覺帖子都不太全自己擼完之后把服務(wù)器初始化又重新擼了一遍咖驮。就有了這篇文章。
本文主要只介紹了如何使你的云服務(wù)器支持node環(huán)境朵逝。并不包含node.js具體代碼蹂午。照擼之前、請自己寫一份監(jiān)聽端口的文件備用钦幔。
1、買個(gè)服務(wù)器
沒啥說了吧常柄、記得服務(wù)器的密碼就行鲤氢。
2、登錄服務(wù)器
- 遠(yuǎn)程連接到你的服務(wù)器
sudo ssh 公網(wǎng)ip
//如果你發(fā)現(xiàn)密碼不對拐纱、也可以用root登錄試試
sudo ssh root@公網(wǎng)ip
先輸入mac密碼铜异、再輸入服務(wù)器密碼
3、安裝node
既然是用node.js進(jìn)行服務(wù)器配置秸架。當(dāng)然要先安裝node.js
1揍庄、先檢查一下g++是否完整
因?yàn)槲矣幸淮伟惭b的時(shí)候提示g++: Command not found導(dǎo)致安裝失敗。所以還是提前檢查一下吧.
g++ --version
如果已經(jīng)安裝东抹。你就可以去安裝node.js了蚂子。
如果沒有
//yum 安裝g++時(shí),用yum list的程序名不是 g++缭黔,而是 gcc-c++食茎,這個(gè)真的很坑。
yum install gcc-c++
2馏谨、下載安裝node.js
可以使用yum進(jìn)行安裝别渔、但這里不推薦
其一是安裝不了太新的版本、而且不能更新
其二是yum安裝不會(huì)主動(dòng)檢查運(yùn)行環(huán)境、以后麻煩
使用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
//進(jìn)入文件夾
cd node-v8.0.0
//依次執(zhí)行
./configure
make && make install
make的時(shí)間會(huì)很長哎媚、你可以看個(gè)電影或者電視劇~
安裝成功之后喇伯、查看一下node版本確認(rèn)是否完成:
node -v
4、上傳node代碼
我用的是webstorm拨与、具體看截圖吧稻据。
這樣就已經(jīng)配置完了
5、關(guān)于服務(wù)器端口監(jiān)聽
在保證本地監(jiān)聽可以啟動(dòng)的情況下买喧、如果修改成公網(wǎng)ip進(jìn)行監(jiān)聽出錯(cuò)捻悯。
listen EADDRNOTAVAIL 47.94.210.34:8080
解決辦法
1、你可以嘗試監(jiān)聽全部IP地址
你可以listen(port,'.0.0.0.0')淤毛、或者干脆l(xiāng)isten(port)今缚、具體為什么不能監(jiān)聽上面那個(gè)、我也不清楚低淡、但0.0.0.0肯定是萬能的解法荚斯。
以下為開發(fā)文檔原文
>
server.listen(port, [hostname], [backlog], [callback])#Begin accepting connections
on the specified port and hostname.
If the hostname is omitted, the server will accept connections directed to any IPv4
address (INADDR_ANY).
也就是說如果不填寫主機(jī)名 hostname 字段、默認(rèn)是監(jiān)聽 INADDR_ANY 查牌、也就是任意的IPv4地址。
2滥壕、如果上面還不好使纸颜。你可以嘗試修改服務(wù)器的安全組配置
6、通過pm2讓node.js程序常駐
通常我們啟動(dòng)node程序就是直接node xxx.js
但是控制臺(tái)是不能退出的绎橘。pm2可以幫我們解決這些問題胁孙。
屏幕快照 2017-07-04 下午6.15.01.png安裝pm2
npm install -g pm2
//或者
npm install pm2@latest -g
啟動(dòng)pm2
pm2 start form.js --name my_form
啟動(dòng)成功
屏幕快照 2017-07-04 下午6.24.26.png
可以你也可以查看當(dāng)前進(jìn)程狀態(tài)
# pm2 list
屏幕快照 2017-07-04 下午6.26.47.png
請忽視我這個(gè)errored、因?yàn)槭峭粋€(gè)文件称鳞、所以端口重復(fù)監(jiān)聽了報(bào)錯(cuò)涮较。不過從這個(gè)15次重新運(yùn)行上看、mp2的這個(gè)功能應(yīng)該是默認(rèn)的冈止。
然后狂票、關(guān)于如何設(shè)置開機(jī)自啟動(dòng)程序。
pm2 start form.js
pm2 save
pm2 startup
重啟服務(wù)器再次查看list熙暴、就會(huì)發(fā)現(xiàn)列表內(nèi)的線程已經(jīng)啟動(dòng)成功了闺属。
7、通過npm進(jìn)行node版本管理
我本地的node是通過brew安裝的周霉。但是這個(gè)brew在服務(wù)器上死活搞不上去掂器、所以才用的安裝包。
但不能每次更新也都用安裝包配置一遍俱箱。
于是国瓮、該我們的npm登場了。
//首先安裝n模塊:專門用來管理node的工具
npm install -g n
//你可以查看所有的node版本。本地版本會(huì)加粗顯示乃摹、當(dāng)前使用版本會(huì)有圓圈標(biāo)注禁漓。
n ls
//下載指定版本的node
n v7.10.0
//選擇當(dāng)前部署版本(上下按鈕選擇、回車確定部署)
n
趕著下班峡懈、我就不貼圖了璃饱。自己試試就知道了。
最后
至此肪康、你的阿里云上已經(jīng)成功搭建好了node環(huán)境并且可以像你本地一樣工作荚恶。
如果上述過程中出現(xiàn)了什么問題。歡迎留言磷支。