使用Vultr搭建個人Hexo博客

今年下定決心提高自己的寫作能力,好的開始是成功的一半,就先記錄下我的搭建個人博客歷程吧,搭建一個博客需要以下幾個步驟

  1. 申請域名
  2. 申請VPS,安裝好Hexo需要的一些軟件
  3. 本地搭建配置Hexo

申請域名

可以在各大域名商上去申請域名,我是在 godaddy 上申請,這里需要注意的事,域名后期續(xù)費是越來越貴的,
所以最好一次性買個幾年, 這樣一來省錢,二來也避免續(xù)費的煩惱,購買域名后,需要注意,
由于我的 VPS 選擇了 Vultr,此域名的域名解析服務(wù)器需要改成 Vultr 的,怎么修改呢

  1. 點擊我的產(chǎn)品中的 DNS ,如下圖
    image
  1. 填上 Vultr 的域名服務(wù)器


    image

到這里我們的域名申請工作就結(jié)束了

VPS

接下來就要申請 vps 了,這里我選擇了口碑比較好的 vultr, 注冊后點擊這里即可配置 server ,前面兩步我選擇了東京的「CentOS 7 x64」,第三步 Server Size 我選擇了第三個普通版

image

這里提前預(yù)警下,由于之后我們要安裝 lnmp 所以配置最好至少選第三個開始的配置,然我一開始選了第二個,lnmp 裝的過程中一直有問題,換成第三個就好了,如果你的 Mysql 至少要安裝 5.7 以上,要出點血選擇第四個配置了(因為 5.7 比較吃內(nèi)存),第四,五步可以不選,第六步最好附上你的 SSH Keys 這樣使用 SSH 登錄你的 VPS 的時候就能免登錄了,怎么生成 SSH Keys 呢,可以點這里查看

image

最后一步為你的 Server 起個名字就行啦(建議用域名,如下)

image

Server 的配置我們選好了之后,我們還需要綁定我們的域名與 ip, 這樣才能讓域名解析器解析正確

點擊這里即可拿到 Server 的 ip

image

拿到域名之后點擊 DNS 中的 「Add Domain」即可綁定域名和 ip

image

在這里我們的 Server 申請工作就結(jié)束了,但申請了之后我們還要再給這個 Server 安裝支撐 Hexo 運行的軟件,需要安裝哪些軟件呢,
我們首先需要知道 Hexo 的運行原理,如下圖:


image

整體原理如下

  1. 本地計算機(jī)將 Sources 下的 Markdown 文件轉(zhuǎn)為 Html 之后,執(zhí)行「Hexo Deploy」命令后,會把本地生成的靜態(tài)文件 push 到 Server 上的 git 倉庫
  2. 「git-hook」會將自動將以上步驟生成的靜態(tài)文件 copy 到網(wǎng)站的根目錄,然后經(jīng)過 Nginx 代理服務(wù)即可把網(wǎng)站展現(xiàn)給用戶,我們的個人博客也就建成了

知道了原理就不難得知
我們要在本地和服務(wù)器分別搭建我們的環(huán)境

本地環(huán)境搭建

  1. 安裝 Git 和 Node.js

  2. 安裝 Hexo:使用 cmd 命令行,輸入下列命令

    $ npm install -g hexo-cli
    
  3. 指定一個文件夾存放你的Blog文件(也就是根目錄)

    $ hexo init <folder>  # <folder>替換成你的文件夾地址,在這個地址里生成Hexo初始化文件
    $ cd <folder>  # 進(jìn)入這個文件夾
    $ npm install  # 在文件夾內(nèi)自動安裝Hexo所依賴的各種模塊
    

服務(wù)器環(huán)境搭建

由以上分析可知我們至少要裝 git, nginx, 主要步驟如下

  1. 使用以下命令即可安裝 git

    yum install git 
    
  2. 至于 nginx 的安裝我推薦大家用 lnmp, Linux、Nginx、MySql、Php 可以說是建站的標(biāo)配了, lnmp 只要執(zhí)行一行命令就能把這些軟件都安裝好,能省下我們不少精力,不過這四個軟件的安裝可能需要半小時之久,大家要做好心理準(zhǔn)備_, 安裝成功后我們訪問域名,即會出現(xiàn)以下提示,說明我們安裝成功了

    image
  1. 安裝好之后我們首先需要建立一個 git 倉庫來存放我們本地 blog 生成的靜態(tài)目錄,為了安全我們通常不以 root 身份來操作,所以這里我們選擇
    新建一個用戶,專門運行 git 服務(wù)

    adduser git
    

    以下步驟賦予 git 用戶 sudo 權(quán)限

    chmod 740 /etc/sudoers
    vim /etc/sudoers
    

    找到以下內(nèi)容:

    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    

    在下面添加一行:

    git ALL=(ALL) ALL
    

    保存退出后改回權(quán)限:

    chmod 400 /etc/sudoers
    

畫外音:可以想一下為啥要給用戶 git 權(quán)限,如果不給的話可能會出現(xiàn)什么問題

  1. 切換用戶,配置SSH

    由于本機(jī) Hexo 部署好文件后需要 push 到遠(yuǎn)程,為了避免每次 push 時都要輸入密碼,我們需要進(jìn)行免密操作,步驟如下

    使用 su git 切換到 git 用戶,再執(zhí)行下列操作

    # 切換到git用戶目錄
    cd /home/git
    # 創(chuàng)建.ssh文件夾
    mkdir ~/.ssh
    # 創(chuàng)建authorized_keys文件并編輯
    vim ~/.ssh/authorized_keys
    # 如果你還沒有生成公鑰,那么首先在本地電腦中執(zhí)行 cat ~/.ssh/id_rsa.pub | pbcopy生成公鑰
    # 再將公鑰復(fù)制粘貼到authorized_keys
    # 保存關(guān)閉authorized_keys后,修改相應(yīng)權(quán)限
    chmod 600 ~/.ssh/authorzied_keys
    chmod 700 ~/.ssh
    

    然后在本機(jī)執(zhí)行以下命令查看配置是否成功

    ssh  git@服務(wù)器ip地址
    
  1. 接下來我們新建一個 git 倉庫來存放本地 Hexo 生成的靜態(tài)文件

    # 回到git目錄
    cd /home/git
    # 使用git用戶創(chuàng)建git裸倉庫,以blog.git為例
    git init --bare blog.git
    

    畫外音: 為啥不用 git init 而用 git init bare, 請這里查看兩者的區(qū)別

    建好倉庫之后我們設(shè)置一下 「git hook」

    vim ~/blog.git/hooks/post-receive
    

    輸入以下內(nèi)容

    #!/bin/bash
    GIT_REPO=/home/git/blog.git
    TMP_GIT_CLONE=/tmp/blog
    #這里我用 /var/www/blog 目錄作為網(wǎng)站的根目錄
    PUBLIC_WWW=/var/www/blog
    rm -rf ${TMP_GIT_CLONE}
    git clone $GIT_REPO $TMP_GIT_CLONE
    rm -rf ${PUBLIC_WWW}/*
    cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
    

    保存退出后,執(zhí)行:chmod +x post-receive 賦予這個文件可執(zhí)行權(quán)限。

檢查一下 blog.git、.ssh、blog目錄的用戶權(quán)限組是否都為git:git
    
```
# /var/www/是怎么回事?注意我在 git hook 里提到用 /var/www/blog 作為網(wǎng)站的根目錄
ll -a /var/www/
ll -a /home/git/
ll -a ~/.ssh
```

![image](http://upload-images.jianshu.io/upload_images/167958-955dbf4f8aa1869d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

如果哪個不是,執(zhí)行以下命令再看一下

```
sudo chown git:git -R /var/www/blog
sudo chown git:git -R /home/git/blog.git
```
  1. 配置 Nginx

    由于我們的 blog 用到了 nginx 靜態(tài)文件處理服務(wù),需要修改 nginx 的配置文件(nginx.conf),進(jìn)入 nginx 的配置目錄

    /usr/local/nginx/conf/
    

    先備份一下 nginx.conf

    cp nginx.conf nginx.conf.bak
    

    然后打開 nginx.conf 文件,修改 root 為我們在上一步新建的 blog 的目錄

    server
    {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name _;
        index index.html index.htm index.php;
        #修改這里為我們的 blog 目錄
        root /var/www/blog;
    
        ...
    }
    

    保存修改后使用 nginx -t 查看配置是否有錯誤,若無誤,則執(zhí)行 lnmp restart 即可讓配置生效

  2. 將本機(jī) Hexo 工程的 git 地址指向 服務(wù)器 git 地址

    # 在本地環(huán)境搭建時我的博客放在~/hexos文件夾里
    cd ~/hexos
    vim _config.yml
    

    找到 deploy 選項,修改 repo 為你的遠(yuǎn)程服務(wù)器地址

    deploy:
    type: git
    repo: git@服務(wù)器ip:/home/git/blog.git
    branch: master
    

    完成了以上本地和服務(wù)器配置之后,使用 Hexo 創(chuàng)建寫好了文章之后,執(zhí)行 「hexo deploy」命令,稍等片刻后,訪問我們的域名即可顯示我們的博客文章,大功告成!

參考:VPS搭建個人Hexo博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容