Hexo部落格部署至伺服器

星空下的YZY發表於2022-01-25

前言

之前想給自己折騰出一個個人部落格網站的時候,除了域名,還在阿里雲買了一個一年的輕量級應用伺服器。由於當時想讓這個部落格長期存在,並且也瞭解到了Hexo+GitHub的方案,所以我手頭的兩個域名(226yzy.top和226yzy.com),前者解析到了伺服器上,後者我留給了GitHub,用於自定義域名(226yzy.com這個域名本來備案了,這樣一搞,由於沒解析到阿里雲的伺服器,阿里雲的備案接入也就停止了,這個域名備案無了???)。

不過伺服器那邊我就放了一個簡單的網頁或者一些資料,基本上還是屬於閒置的狀態。最近又苦於網站訪問速度過於龜速,於是想著不妨嘗試學習一下將Hexo部落格部署到伺服器。(這樣如果我之後真的忍不下去這龜速訪問速度,那就將226yzy.com這個域名重新備案解析到伺服器上?)

然後,我在網上尋找解決方案的時候,找到了黑石大佬寫的部落格Hexo 部署至雲伺服器(寶塔皮膚) - 黑石部落格 - Hexo部落格 (heson10.com),正好我的伺服器上也很早就裝了寶塔皮膚。不過,黑石大佬的這篇部落格2020年12月18日的可能有點過時,文中所給的路徑有些不合適(寶塔現在好像不允許網站的根目錄設定在/var檔案下” )

【轉載說明】本文優先釋出於我的個人部落格www.226yzy.com ,轉載請註明出處並註明作者:星空下的YZY。

本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 4.0許可協議。

更好的閱讀體驗歡迎訪問原文原文

前置

首先你肯定要有伺服器啦,然後Hexo也應該在本地弄好。

寫這篇的時候發現黑石大佬也參考了這篇部落格將Hexo部署到阿里雲輕量伺服器(保姆級教程) | HJX's Site (hjxlog.com),裡面部署Hexo的流程都挺詳細的

伺服器的話寶塔皮膚是個好東西,方便明瞭。

由於太早之前就在伺服器上裝好寶塔皮膚了,一下也忘了具體流程。可以參考網上其它教程部落格,應該還是挺多的。以及寶塔官網https://www.bt.cn/

啊,對了還有本地Git也要裝一下,Git官網https://git-scm.com/

配置SSH金鑰

我們需要本地的SSH金鑰,操作命令如下(注意資訊替換成你自己的)

git config --global user.name "你要設定的名字"
git config --global user.email "你要設定的郵箱"
ssh-keygen -t rsa -C "你剛剛設定的郵箱"

如果你在GitHubs上,或者Coding、Gitee等上面成功部署過,那麼應該已經有弄過這個了

生成的檔案位置在C:\Users\(你的使用者名稱)\.ssh

在這個目錄下有一個id_rsa.pub這就是我們後面要用的SSH公鑰

SSH公鑰檔案位置

上面的id_rsa為私鑰,注意千萬不要外洩

伺服器終端操作

現在開始在伺服器上操作了,由於我安裝了寶塔皮膚,所以就根據所以後面會基於寶塔皮膚記錄

開啟終端與切換root使用者

在登入寶塔皮膚後,開啟終端

寶塔皮膚終端位置

然後切換root使用者

sudo su root

切成功切換root使用者後,會類似如下

成功切換root使用者

下文中切換git使用者後,root會變成git

不過我的寶塔貌似一開啟終端就是root使用者?

安裝Git並建立git 賬戶

  • 首先我們要在伺服器上安裝Git
yum install git
  • 然後是建立 git 賬戶並賦予許可權
adduser git
  • 賦予git賬戶許可權
chmod 740 /etc/sudoers
  • 編輯 /etc/sudoers 檔案
vim /etc/sudoers
  • i鍵進入編輯模式,找到root ALL=(ALL) ALL,在其下方加入:
git     ALL=(ALL)      ALL

erc/sudoers檔案新增

也就是新增在我藍色標註的位置加上

輸入完成後按esc,再輸入:wq,儲存退出。

  • 更變/etc/sudoers檔案許可權
chmod 400 /etc/sudoers
  • 設定 git 賬戶密碼
sudo passwd git

輸入密碼,輸入的時候是看不到任何顯示的,輸完回車即可。

linux下輸入密碼是不顯示*的

密碼設定成功後如下,藍色劃線提示

密碼設定成功

  • 切換至 git 使用者,建立 ~/.ssh 資料夾和 ~/.ssh/authorized_keys 檔案
su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

同樣i進入編輯模式,把之前本地win10中生成的id_rsa.pub檔案中的公鑰複製進去,按esc後,輸入:wq儲存。

接著,更改許可權:

chmod 600 /home/git/.ssh/authorized_keys
chmod 700 /home/git/.ssh
  • 本地測試:

    在電腦本地桌面,右鍵”Git Bash Here”,輸入以下命令,執行輸入yes後無報錯說明配置成功了。

ssh -v git@伺服器ip地址或域名

伺服器建立Git倉庫

  • 切換到root賬戶
sudo su root
  • 建立倉庫目錄
    在var目錄下建立repo作為Git倉庫目錄並新增許可權,輸入:
mkdir /var/repo
chown -R git:git /var/repo
chmod -R 755 /var/repo
  • 建立網根目錄

注意這裡就跟黑石大佬給的路徑不一樣了,黑石大佬給的路徑現在寶塔皮膚好像不允許了?

例如我是/www/wwwroot/blog.226yzy.top,如果是看黑石大佬的部落格過來的,可以嘗試將黑石大佬給的路徑/var/hexo都改成/www/wwwroot/hexo,當然這個hexo你也可以改成別的。

下文我就以/www/wwwroot/hexo的路徑來記錄操作

建立 hexo 目錄作為網站根目錄

mkdir /www/wwwroot/hexo
chown -R git:git /www/wwwroot/hexo
chmod -R 755 /www/wwwroot/hexo
  • 建立一個空白的 git 倉庫
cd /var/repo
git init --bare hexo.git
  • 編輯一個 Git 鉤子
vim /var/repo/hexo.git/hooks/post-receive

i進入編輯模式,新增下面的程式碼,按esc輸入:wq 儲存

#!/bin/bash
git --work-tree=/www/wwwroot/hexo --git-dir=/var/repo/hexo.git checkout -f
  • 更改許可權
chown -R git:git /var/repo/hexo.git/hooks/post-receive
chmod +x /var/repo/hexo.git/hooks/post-receive

寶塔網站配置

接下來就是配置網站域名了

先點網站,然後點選新增站點

域名添你自己要添的(當然是你自己有的域名)

新增的域名記得後續在DNS配置一下解析

根目錄就填/www/wwwroot/hexo(或者你自己改的目錄)

其他FTP、資料庫、PHP版本啥的,視你自己的需求而定,可以不用,預設即可

示例如圖:

寶塔網站配置

弄好後,那個SSL證照也可以弄一下,寶塔好像有免費的?,能https總比http更好更安全

Hexo三連

最後就是Hexo的一鍵三連了?

在本地部落格檔案根目錄下

hexo clean && hexo g && hexo d 

可惜,這個每次上傳好像要輸入一次你前面設的密碼,我也還在尋找方法如何本地免密上傳

2021.12.29記

每次上傳需要輸入密碼的問題已解決,詳情見下文

上傳成功後,如果可以正常訪問你設的域名就大功告成啦✌✌✌

解決每次上傳需要輸入密碼的問題

2021.12.29,我開啟阿里雲伺服器的工作臺,點選遠端連結後,我看到了金鑰管理,我突然意識到了問題出哪

重新配置金鑰

如果你以前在阿里雲伺服器工作臺上上傳過與現在不一樣的金鑰(我本地確實換過一次金鑰),那請更新一下這個金鑰,上文中的操作貌似對這個不起作用

金鑰管理

配置金鑰後上傳失敗

類似於下圖

報錯

還好,我以前上傳Coding上的時候也出現過這樣的問題

解決方法可見我的另一篇對於Git出現git@e.coding.net:(publickey).問題的解決 | 星空下的YZY (226yzy.com)

注意把我那文章中提到的*.coding.net替換成你自己伺服器的IP地址吼?

參考文獻

https://hjxlog.com/posts/20191130a1.html#1-前言

https://www.heson10.com/posts/51315.html

最後

暫時就上面這些吧

歡迎訪問我的小破站 https://www.226yzy.com/ 或者GitHub版映象 https://226yzy.github.io/ 或Gitee版映象 https://yzy226.gitee.io/

我的Github:https://github.com/226YZY

【轉載說明】本文優先釋出於我的個人部落格www.226yzy.com ,轉載請註明出處並註明作者:星空下的YZY。

本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 4.0許可協議。

相關文章