前言
每個前端也許都想搭建個自己的站點(diǎn),擁有自己的專屬域名。在這之前,還是先了解一下云服務(wù)器吧:
阿里云服務(wù)器
輕量服務(wù)器還是ECS服務(wù)器?
我選擇的是輕量服務(wù)器,應(yīng)用鏡像可以先隨便選一個,反正可以重裝。一開始選擇了應(yīng)用鏡像為wordpress,window下遠(yuǎn)程登錄服務(wù)器可以使用putty軟件,也可以直接用阿里控制臺。
一、登錄服務(wù)器后,自己熟悉一下服務(wù)器
1、查看云服務(wù)器內(nèi)核的信息:uname -a
2、切換到root用戶:
sudo su root
這樣就可以訪問root文件夾,否則是沒有權(quán)限的:

切回到admin:sudo su admin
3、在root用戶下修改密碼:passwd
4、top:查看任務(wù),及內(nèi)存的使用
5、ls:查看目錄下的文件,相當(dāng)于window的dir
6、cat fileName:查看文件內(nèi)容
7、關(guān)于yum
YUM是LINUX類系統(tǒng)上的自動更新組件安裝系統(tǒng)。就象windows上的自動更新。都是可以自能分析當(dāng)前系統(tǒng)的安裝環(huán)境并根據(jù)具體命令網(wǎng)絡(luò)升級安裝所需組件。(具體百度)
8、網(wǎng)站代碼部署:下載安裝winscp,連接服務(wù)器。主機(jī)名為阿里云公網(wǎng)ip。
登錄成功:
網(wǎng)站根目錄:/home/www/htdocs,相當(dāng)于Tomcat下的\webapps\ROOT目錄。將測試頁面test.html拖進(jìn)里面測試一下,在瀏覽器中訪問:
http://服務(wù)器ip/test.html,可以看到自己的頁面。
8.連接數(shù)據(jù)庫:
輕量應(yīng)用服務(wù)器預(yù)裝了MySQL服務(wù)端,但是沒有裝客戶端,也沒有默認(rèn)開啟權(quán)限,在電腦使用MySql客戶端連接不上。使用命令在服務(wù)器上裝一個:yum install mysql;
但仍然不可用,心想全部裝了它,命令yum install mysql*,近500M,然后聽搞后臺的小伙伴說裝起來會很麻煩的,那還是算了。另外我也要切換到nodejs的應(yīng)用鏡像。

在這里就可以重裝了,挺快的幾分鐘。
二、Nodejs鏡像的使用:
實(shí)際開發(fā)的過程中,我們通常會選擇Linux系統(tǒng)作為我們的服務(wù)器系統(tǒng),以此來保證我們的產(chǎn)品能夠更加安全、高效的運(yùn)行。所以學(xué)一下還是有必要的。

裝了之后,我就像在windows下那樣運(yùn)行命令查看一下版本:

不是裝好了嗎?怎么不可以用?
于是我找了這篇教程部署Node.js項(xiàng)目(CentOS),然后看到了這句話:

我進(jìn)入到node的目錄下(需要root權(quán)限),在其子目錄都運(yùn)行了一遍,還是不行呀:

顯然我們的服務(wù)器是nvm方式,于是我又運(yùn)行了教程中的以下命令:

echo ". ~/.nvm/nvm.sh" >> /etc/profile
source /etc/profile
/etc/profile文件里是有關(guān)Linux環(huán)境變量的東西,這里將nvm環(huán)境變量加進(jìn)去并初始化。
我再試了試,雖然它報了點(diǎn)東西,不知道是什么意思,但終于是有用了

退出到其他目錄也可以:

版本有點(diǎn)低,安裝一個高版本的nodejs:

三、關(guān)于NVM:
https://www.cnblogs.com/SpecterGK/p/8550392.html
每次切換了node版本后,下次打開終端,又會回到它默認(rèn)的版本,此時可以設(shè)置默認(rèn)版本:
nvm alias default version_name
例如:
nvm alias default v9.3.0
好的,下面就創(chuàng)建個nodejs服務(wù)試試:
(1)創(chuàng)建一個文件夾:
mkdir test
mkdir(make directory)這個命令是用于創(chuàng)建文件夾的,使用非常簡單,mkdir+文件夾名稱,之間一定要有空格。
(2)后面的就像在Windows下創(chuàng)建node服務(wù)差不多,進(jìn)入文件夾:cd test
運(yùn)行npm init --yes
npm i
npm install express --save
然后在本機(jī)寫個簡單的server.js(或者直接在winscp上寫):
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
console.log('test')
});
console.log('test')
app.listen(3000);
(3)最后就是用winscp把server.js放上去,最終就是這樣,跟Windows下一樣。

(4)然后我們啟動它:node server.js

終于可以了。
(5)然后我們在瀏覽器中訪問它,這時候會報錯:

需要設(shè)置防火墻:

然后添加規(guī)則,選擇自定義,然后輸入端口,server.js中監(jiān)聽的是3000

好,瀏覽器也可以訪問了。

四、遺留問題
雖然這樣是可以了,但遺留了很多問題,簡單記錄:
(1)直接訪問ip報錯

??不帶端口訪問則默認(rèn)為80,也就是http的端口。
運(yùn)行命令:
netstat -anp|grep 80發(fā)現(xiàn)是nginx在占用,nginx服務(wù)應(yīng)該是搭起的了,防火墻也默認(rèn)開啟了80。那為報錯??
(2)關(guān)閉控制臺或者關(guān)閉遠(yuǎn)程連接,nodejs服務(wù)也會跟著關(guān)閉。
解決辦法:
因?yàn)閱拥臅r前臺進(jìn)程,關(guān)閉控制臺進(jìn)程就沒了??梢允褂肞M2來管理進(jìn)程:http://www.itdecent.cn/p/e709b71f12da?utm_source=desktop&utm_medium=timeline
于是我這樣啟動服務(wù):pm2 start server.js
然后,即使關(guān)閉控制臺了,node服務(wù)也會繼續(xù)運(yùn)行。
pm2 logs命令可以查看日志。
我把一個Ionic demo掛在了上面:http://xxx.23.61.159:3000
(3) 切換node版本后pm2不可用:需要在當(dāng)前版本再安裝一個pm2,運(yùn)行:
npm install -g pm2