1. 程式人生 > >將個人博客從GitHub遷移至阿裏雲服務器過程總結

將個人博客從GitHub遷移至阿裏雲服務器過程總結

就是 ron 網站備案 文件 博客 csdn 而是 class other

讓我們先回顧下前兩篇博客:

程序員如何從0到1搭建自己的技術博客

在個人博客中優雅的使用Gitalk評論插件

通過前兩篇博客,我們了解了如何快速的從0到1搭建一個個人博客並使用了Gitalk評論插件,雖然博客現在是有了,但是存在一些缺點,主要有以下幾點:

  • 訪問不穩定
  • 百度收錄不好
  • 百度統計功能無法正常使用

作為一個有追求的程序員,豈能容忍這些缺點,哈哈,於是趁著阿裏雲Hi購季買了一臺阿裏雲服務器,開啟了將個人博客遷移至阿裏雲服務器的歷程,誰知竟然倒騰了兩三天,本篇博客就詳細總結下在這個過程中遇到的問題,希望也能幫助到讀到這篇文章的你。

1.服務器搭建Jekyll環境

說明:我這裏購買的服務器是Windows系統的。

因為Jekyll是基於Ruby開發的,因此,我們需要在服務器上安裝下Ruby,下載地址:https://rubyinstaller.org/downloads/。

整個的安裝過程非常痛苦,試了各個版本,安裝都沒問題,就是最後編譯博客成靜態站點時,各種報錯,網上也沒有合適的解決方案,最後我選擇了安裝最新版:

技術分享圖片

軟件的安裝過程相對比較簡單,這裏就不做詳細講解。

安裝完成後,我們可以打開cmd窗口,輸入以下命令驗證Ruby是否安裝成功:

ruby -v

ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32]

接下來,執行如下命令安裝Jekyll:

gem install jekyll

安裝完成後,輸入以下命令校驗:

jekyll -v

jekyll 3.8.5

2.服務器Git安裝

Git的安裝對各個開發來說,更加簡單,這裏只貼下Git的下載地址:https://git-scm.com/download/win

3.拉取GitHub代碼並編譯成靜態站點

首先先拉取GitHub代碼到服務器:

git clone https://github.com/zwwhnly/zwwhnly.github.io.git

然後使用Jekyll編譯:

技術分享圖片

編譯成功後會自動生成一個_site文件夾,裏面的內容就是我們要部署的靜態站點:

技術分享圖片

說明:這一步非常折騰人,特別容易出錯,是因為安裝的Ruby版本和GitHub倉庫根目錄的Gemfile.lock裏的版本不一致,要修改下這個文件。

因為我已經修改完成了,你可以直接下載該文件替換你的文件即可:https://github.com/zwwhnly/zwwhnly.github.io/blob/master/Gemfile.lock。

如果還是編譯報錯,按照提示執行如下命令即可:

gem install {缺少的包名稱,如jekyll-paginate}

4.服務器Nginx環境安裝

現在靜態站點已經成功生成,接下來就是部署的事情,這裏我並沒有使用傳統的IIS來部署,而是選擇使用Nginx來部署。

首先,下載Nginx安裝包,下載地址:http://nginx.org/en/download.html

技術分享圖片

然後將下載的壓縮包解壓到指定的目錄,解壓後的結構如下:

技術分享圖片

雙擊nginx.exe運行nginx,在瀏覽器輸入http://localhost查看效果如下:

技術分享圖片

5.修改Nginx配置

打開conf文件夾下的nginx.conf文件,修改配置如下(這裏只標記了修改項,其余項可保持默認):

server {
        listen       80;
        server_name  www.zwwhnly.com;

        location / {
            root   C:/Nginx/nginx-1.12.2/zwwhnly.github.io/_site;
            index  index.html index.htm;
        }
    }

6.配置域名解析

登錄阿裏雲後臺配置域名解析:

技術分享圖片

7.網站備案

備案的過程很簡單但是很繁瑣,用的阿裏雲備案,前後耗時大概有4~5天。

友情提示:備案前準備好身份證,如果是在上海又不是上海戶口,還需要準備居住證,更獨特的是,還需要一個安卓手機,因為中間有一步要上傳手持身份證照片校驗,竟然只支持安卓手機(我是拿身份證耗時1天,拿居住證耗時1天,又拿了個安卓手機耗時1天,剩余的審批,阿裏雲備案效率還是挺高的)。

備案成功後,將備案號展示在網站底部:

技術分享圖片

8.驗證

滿心歡喜的在瀏覽器輸入我的域名http://www.zwwhnly.com訪問,結果一直訪問不了,最後才發現是使用阿裏雲服務的原因。

最後的解決方案如下:

在阿裏雲控制臺找到自己購買的ECS實例,配置安全組規則,因為我們使用的是默認的端口號80,因此添加的安全組規則如下:

技術分享圖片

此時,輸入域名,訪問網站成功:

技術分享圖片

9.總結

後續還是使用Markdown寫作,博客寫完後將代碼提交到GitHub,然後去服務器執行如下命令(可以寫成一個批處理bat文件),重新編譯下站點:

cd C:\Nginx\nginx-1.12.2\zwwhnly.github.io

git pull https://github.com/zwwhnly/zwwhnly.github.io.git

jekyll build

如果嫌麻煩,可以添加一個任務計劃程序定期執行該腳本,比如一天執行一次。

10.參考鏈接

jekyll 部署

windows安裝jekyll步驟及問題

NGINX配置好之後,localhost可以訪問,但域名無法訪問?坑可能在阿裏雲

將個人博客從GitHub遷移至阿裏雲服務器過程總結