/*
* 備注:錯誤步驟:1~4,直接進行步驟5即可
*/
1. 首先需要下載node安裝包,可以在 https://nodejs.org/dist/
中查找最新的安裝包地址,使用
wget https://nodejs.org/dist/v4.5.0/node-v4.5.0.tar.gz
提示
ERROR: certificate common name `*.nodejs.org' doesn't match requested host name `nodejs.org'. To connect to nodejs.org insecurely, use `--no-check-certificate'.
是因為該網址所使用的協議是https協議,因此加上了--no-check-certificate參數
wget --no-check-certificate https://nodejs.org/dist/v4.5.0/node-v4.5.0.tar.gz
成功下載
2. 嗯,上述方法需要安裝 gcc 與 gcc-c++,因此使用
yum -y groupinstall "Development Tools"
對上面兩者進行了安裝
3. 將安裝包進行解壓,使用
tar -xf node-v4.5.0.tar.gz
然后發現當前文件夾下多出了一個解壓后的文件夾
4. 接下來進入該目錄,使用make對其進行編譯,此時出錯,顯示的錯誤內容為:
In file included from ../deps/v8/src/v8.h:29, from ../deps/v8/src/accessors.cc:5: ../deps/v8/include/v8.h: In constructor 'v8::MaybeLocal<T>::MaybeLocal()': ../deps/v8/include/v8.h:353: error: 'nullptr' was not declared in this scope ../deps/v8/include/v8.h: In member function 'bool v8::MaybeLocal<T>::IsEmpty() const': ../deps/v8/include/v8.h:360: error: 'nullptr' was not declared in this scope ../deps/v8/include/v8.h: In member function 'bool v8::MaybeLocal<T>::ToLocal(v8::Local<S>*) const': ../deps/v8/include/v8.h:364: error: 'nullptr' was not declared in this scope ../deps/v8/include/v8.h: In member function 'bool v8::WeakCallbackInfo<T>::IsFirstPass() const': ../deps/v8/include/v8.h:430: error: 'nullptr' was not declared in this scope ../deps/v8/include/v8.h: At global scope: ../deps/v8/include/v8.h:469: error: expected unqualified-id before 'using' ../deps/v8/include/v8.h: In constructor 'v8::Global<T>::Global()': ../deps/v8/include/v8.h:790: error: 'nullptr' was not declared in this sc
經檢查,應該是gcc與gcc-c++版本問題,所以對其進行更新也許可以解決。
5. 之后並沒有繼續上述方法。而是查到了使用
sudo yum install -y nodejs
可以成功安裝nodejs,使用版本測試查看版本
node -v
顯示為
v0.10.48
表示成功安裝
在node安裝成功之后,寫一個常用的http模塊程序:server.js
1 var http = require('http'); 2 var server = http.createServer(function(req, res){ 3 res.writeHeader(200, { 4 'Content-Type': 'text/plain; charset=utf-8' 5 }); 6 res.end('Hello World'); 7 }); 8 server.listen(8888); // 監聽8888端口,其他如apache服務器默認為80端口
在使用
node server.js
之后,發現可以訪問雲服務器ip地址的8888端口,界面輸出Hello World字樣。
但是有個問題,如果將所使用的shell關閉了以后,該頁面就訪問不到了,因此查找解決方法,發現需要“守護進程”
在查找過程中,發現阮一峰大神的這篇博客中有提到這一點:可以使用
node sever.js &
在后面加一個&使該進程變為后台任務,是最簡單的方法,但是當server.js修改的時候需要重新啟動server.js,並不能自動監測該文件的變化,因此可以看博客中的幾個方法。
其中,使用linux中的 nohup方法加指令來使命令后台運行,較為簡單。
另外,如果需要結束后台任務,需要kill命令
// 首選需要查找運行在8888端口上的進程id sudo lsof -i:8888 // 然后使用這個命令殺死進程 sudo kill -9 24841