本文來自于輕量應用伺服器征文活動的使用者投稿,已獲得作者(昵稱飛鳥)授權釋出。
引言:
Hexo是一款基于Node.js的靜态部落格架構,依賴少易于安裝使用,是搭建部落格的首選架構。本篇教程記述了作者用阿裡雲輕量應用伺服器部署Hexo的詳細過程,步驟完整,操作性強,一起來看看吧~
步驟一:本地電腦部署
1、安裝nodeJS
浏覽器進入NodeJS 官網,安裝 LTS(Long Term Support)版本。

驗證nodeJS是否安裝成功:
按住win+R,輸入cmd,進入 cmd 指令行工具,輸入node -v檢視 node 版本,若出現版本資訊(如下圖示),則說明 node 安裝成功。
2.、安裝Hexo
i. 安裝Hexo
在 cmd 指令行中輸入npm install hexo-cli -g,安裝 hexo。完成後輸入hexo -v檢視版本資訊,确認安裝成功。
ii. 初始化根目錄
建立檔案夾Hexo-Blog,在 cmd 指令行中進入該目錄,輸入hexo init初始化根目錄。
iii. 本地檢視
輸入hexo g&&hexo s(生成靜态檔案,并開啟本地伺服器)
根據提示,在浏覽器中打開http://localhost:4000,即可看到初始的部落格頁面。
iv. 美化部落格
對自己的部落格進行更改樣式、美化、增删功能、釋出文章等操作,就不展開介紹了。
步驟二:購買域名
本教程後續涉及域名處,以test.top為例進行示範;讀者在自己學習部署時,應将此域名替換為自己網站的域名。
1、購買域名
在阿裡雲上可以購買域名,.com/.cn/.top/.xyz/.store等域名一應俱全,部分域名隻需要1塊錢。
2、域名備案
域名綁定國内的伺服器,必須要進行備案操作,否則将無法通路。從送出備案資訊,到管局稽核通過,備案号下來一共花了不到 10 天的時間。
3、域名解析
域名解析是把域名指向網站空間 IP,讓人們通過注冊的域名可以友善地通路到網站的一種服務。IP 位址是網絡上辨別站點的數字位址,為了友善記憶,采用域名來代替 IP 位址辨別站點位址。
說明:
◾ 主機記錄中,www代表域名前加www.,如www.test.top,@就代表test.top,這樣兩個位址都能通路到伺服器了
◾ 記錄類型A是指,将域名指向一個IPV4位址
◾ 記錄值就是伺服器的公網 IP
步驟三:伺服器端配置
1、購買伺服器
為了讓其他使用者在自己的用戶端通路到自己的部落格,就需要将部落格部署到伺服器上,其他使用者通過通路伺服器的公網 IP 來通路到伺服器上的資源。若綁定了域名,還可以通過域名通路。
通過阿裡雲開發者成長計劃,購買了輕量應用伺服器。在系統的選擇上,作為伺服器系統,CentOS 穩定、強大,是以系統鏡像選擇了 Linux 系統的 CentOS 7.3 版本。
2、配置端口
點選雲伺服器管理頁面的防火牆,再點選添加規則。
使用 HTTP 協定通路伺服器,需要在伺服器端監聽 80 端口,因為 80 端口是伺服器的預設端口号。而阿裡雲伺服器預設關閉 80 端口,則需要我們手動打開監聽 80 端口。另外,伺服器端配置 Git 時需要使用 SSH 協定進行本地與伺服器的連接配接,需要伺服器監聽 22 端口,也需要手動打開。
3、伺服器環境搭建
此步驟需要在輕量應用伺服器上完成。具體方法可以使用遠端連接配接(如下圖示),也可以使用 Xshell 用戶端進行連接配接。
i. 安裝 nginx
①切換到 root 帳号,輸入指令:
sudo su root
②需要使用 nginx 作為 Web 伺服器,是以我們首先要安裝 nginx。可以使用 yum 指令直接進行安裝:
yum install -y nginx
③安裝完成後啟動 nginx 伺服器,指令如下:
systemctl start nginx
systemctl enable nginx
ii. 建立部落格根目錄
将部落格的頁面檔案放在/home/www/website/路徑下,需要先建立這些檔案。
cd /home
mkdir www
cd www
mkdir website
檢視建立的檔案:
iii. 配置 nginx 路由
建立了部落格的根目錄後,需要将 nginx 伺服器指向這個根目錄位址,才能通路到部落格頁面,是以需要修改 nginx 的配置檔案。
阿裡雲預設的庫下載下傳的是基于 fedora 的 nginx,查閱資料發現,預設配置檔案位于etc/nginx/下的nginx.conf。
檢視 nginx 的預設配置檔案:
cd ~
cd /etc/nginx
ls
檔案中的nginx.conf就是預設配置檔案。
但不采用直接修改 nginx 配置檔案的方式,而是建立一個檔案夾,将自己的配置寫在建立的檔案夾中。再利用include,在配置檔案nginx.conf中将檔案夾引入進來即可。
這樣若有新的需求時,隻需在檔案夾中添加新需求的配置檔案即可,不會再次修改配置檔案nginx.conf,提高效率。
切換/etc/nginx/目錄,在此目錄下建立一個檔案夾vhost:
cd /etc/nginx
mkdir vhost
cd vhost
輸入vim blog.conf建立blog.conf檔案并編輯内容:
server{ listen 80;
root /home/www/website;
server_name test.top;
location /{
}
}
其中,listen代表監聽 80 端口。root是部落格的根目錄,頁面存放的位址。server_name是伺服器名稱,填域名test.top,将域名和部落格的頁面根目錄綁定。
為了讓
http://www.test.top/也能通路到部落格頁面,再建立一個配置檔案wwwblog.conf,将server_name設定為www.test.top:
這樣,/etc/nginx/vhost目錄下就有兩個配置檔案,blog.conf和wwwblog.conf:
打開/etc/nginx/目錄下的nginx.conf檔案,添加下面一行代碼,将剛才建立的配置檔案引入進來。*.conf的意思是将vhost檔案夾下的所有.conf字尾的檔案都引入了進來。注意:要寫在http{}的裡面。
include /etc/nginx/vhost/*.conf;
至此,完成了 nginx 路由的配置,将域名和雲伺服器指定路徑進行了綁定。
4、安裝nodeJS
輸入輸入指令:
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
安裝完成後執行 node -v 和 npm -v ,如果列印版本号則安裝成功。
步驟四:配置服務端Git
這一部分主要目的是本地電腦可以通過ssh方式連接配接到雲伺服器,然後就可以通過指令行方式将部落格傳到雲伺服器上。
1、安裝Git
輸入指令:
yum install git
2、配置Git使用者
輸入以下指令添加 Git 使用者:
adduser git
修改使用者權限指令:
chmod 740 /etc/sudoers
打開/etc/sudoers指令:
vi /etc/sudoers
在這個位置添加語句:
git ALL=(ALL) ALL
儲存退出後,将sudoers檔案權限改回原樣:
chmod 400 /etc/sudoers
設定 Git 使用者的密碼:
sudo passwd git
切換到 git 使用者,然後在~目錄下建立.ssh檔案夾,指令:
su git
cd ~
mkdir .ssh
cd .ssh
3、配置Git密鑰
生成公鑰密鑰檔案指令:
ssh-keygen
輸入後都按回車即可!!!
此時在目錄下就會有兩個檔案,分别是id_rsa和id_rsa.pub,其中id_rsa.pub就是公鑰檔案,複制一份:
cp id_rsa.pub authorized_keys
這樣目錄下就會有一個authorized_keys檔案,修改它的權限:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
用戶端生成密鑰:
在本地電腦的CMD指令行工具中輸入ssh-keygen -t rsa,都按回車即可!會在本地電腦的使用者檔案夾下生成密鑰:
接着,将本地電腦的id_rsa.pub檔案的内容拷貝到雲伺服器的authorized_keys檔案的末尾!!!!可采用的方法有:
• 直接複制内容
• 通過Xftp檔案傳輸工具,先将本地電腦的id_rsa.pub檔案傳輸到雲伺服器某位置,再在雲伺服器上該位置執行cat id_rsa.pub >> ~/.ssh/authorized_keys即可
然後我們在本地電腦上,打開 cmd,使用ssh方式連接配接雲伺服器,輸入:
ssh -v git@雲伺服器的公網IP
最後提示Welcome to Alibaba Cloud Elastic Compute Service !,說明不用輸入密碼也登入成功了,即配置 Git 密鑰成功,以後更新部落格部署的時候不用輸入 Git 密碼了!
4、建立Git倉庫
建立一個 Git 的倉庫,并且建立一個post-receive檔案
cd ~
git init --bare blog.git
vi ~/blog.git/hooks/post-receive
輸入以下内容:
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
儲存退出并授予該檔案可執行權限,指令:
chmod +x ~/blog.git/hooks/post-receive
到此伺服器端配置完成。
步驟五:配置Hexo并部署釋出
1、安裝插件
本地電腦和伺服器端配置都完成後,在本地電腦的 Hexo 根目錄下,輸入以下指令安裝插件:
npm install hexo-deployer-git --save
npm install hexo-server
2、修改參數
打開_config.yml檔案,修改deploy項目如下:
deploy:
type: git
repo: git@雲伺服器公網IP:/home/git/blog.git
branch: master
其中,type項表示部署類型為git,倉庫repo位址為git@雲伺服器公網IP:/home/git/blog.git,分支branch為master主分支。
3、遠端部署
對部落格進行的美化、功能添加、文章拟寫等完畢後,指令行輸入hexo clean清除本地緩存,輸入hexo g -d生成靜态檔案,并部署到遠端倉庫。
此時本地的部落格頁面已經部署到了伺服器的/home/www/website目錄下:
注意:
部署完成後,若打開頁面沒變化,可以在雲伺服器輸入以下重新開機nginx即可:
nginx -s reload
到此,通過 hexo 搭建部落格并部署到阿裡雲輕量應用伺服器總算完成啦~
福利時間:2021雲上架構與運維峰會12月10日下午13:30分進行線上直播,阿裡雲與優秀企業技術大咖分享;雲上自動化運維成熟度模型釋出;體驗動手實驗可領取精美禮品。歡迎點選閱讀原文或掃描下方二維碼,報名參會或預約直播。