都說 hexo 是靜態的 Blog,當時不明覺厲= =。后來終於知道了什么意思......所謂的靜態,其實就是因為你不能改雲端,而是依賴本地數據,然后使用命令將本地數據變成 web 數據再使用瀏覽器進行查看......因為這玩意顯然要在本地處理,所以每次本地修改之后還要上傳到 git 或者是服務器所以看起來麻煩點而已 ......
Local
Hexo 這個東西的數據全部是本地式的 QwQ,包括主題樣式文章啥的都是的,所以本地非常重要,服務器雲端反而不難搞了。
Step1
安裝必要工具
sudo apt install npm
sudo apt install nodejs
npm install hexo-cli -g
Step2
安裝Hexo。
創建一個文件夾,名字自選,使用終端進入這個目錄,接下來的操作后Hexo的相關文件將全部會在里面(O3O)。
hexo init
npm install
然后文件夾下的東西基本上就全了,安裝完成,接下來是本地基本操作。
Step3
Hexo命令。
Hexo 的命令行在第一步里已經安裝好了,那么接下來注視着你的文件夾內的東西,並使用命令hexo g
看看。
你會發現多了一個 public 文件夾對不對,那就是對本地數據整合之后將會在瀏覽器上展示的結構,全在里面的。這時候,你再運行hexo clean
試試 -- public 就消失啦!這就是清除緩存,而 g 命令可以理解為編譯整合文件得到緩存。
然后就是新建文章,這里命令很簡單:hexo new 文章名
。然后就會生成文章名.md
這樣的玩意= =,那么文章在哪里呢?在你裝Hexo文件的目錄的source/_post下,你就會發現它,然后你就可以直接編輯了。刪除?直接在編輯的那個文件夾里刪掉文章就好了。
Hexo的另一個核心命令就是hexo s
,它的作用就是在本地展現你的網站,使用這個命令后,在瀏覽器里打開localhost:4000
即可看到效果。
Service
Step1
安裝必要工具。
首先需要將文件傳上來,這里我們選擇使用 git ,然后對於網頁展示我們使用久負盛名的 nginx。
sudo apt install nginx git-core
Step2
Hexo倉庫與權限。
git 傳上來需要有個倉庫,那么我們新建一個倉庫,就叫 hexo.git。
mkdir hexo.git
cd hexo.git
git init --bare
然后來到/var/www
文件夾下,我們的網頁就會存放在這里的某一個文件夾下,這里我們創建一個文件夾hexo,然后賦予它操作權限,同時賦予自己權限來操作它。
mkdir hexo
chmod 0755 hexo
chown root:root -R /var/www/hexo
Step3
nginx 與 git 配置。
我們首先注意到,當我們將本地網頁文件傳上來之后,我們可能還要到服務器端操作一番,以能夠將網頁文件放到/var/www/hexo
下展示,這樣太麻煩了。怎么辦?很簡單,git自帶一個功能,那就是只要有文件傳輸它就會執行某個腳本。那么我們怎么做呢?寫個腳本就好了!
vim hexo.git/hooks/post-receive 看你的文件夾建在哪里吧
向其中輸入:
!/bin/bash
GIT_REPO=~/hexo.git # 觸發 hook
TMP_GIT_CLONE=/tmp/hexo # 存在 /tmp 下
PUBLIC_WWW=/var/www/hexo # 展示網站的目錄
rm -rf ${TMP_GIT_CLONE} # 刪除之前內容
git clone $GIT_REPO $TMP_GIT_CLONE # 將 Git 倉庫上傳的內容復制到/tmp
rm -rf ${PUBLIC_WWW}/* # 刪除展示網站的目錄的全部內容
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW} # 將/tmp所有內容復制到網站目錄
保存退出即可。
然后你在瀏覽器里興奮地輸入你服務器的IP地址,並回車!然而並沒有成功= =
因為我們還需要向 nginx 寫入配置,將/var/www/hexo
作為主目錄。
cd /etc/nginx/sites-available
vim default
然后將內容刪除,寫上:
server {
listen 80;
listen [::]:80;
root /var/www/hexo;
index index.html index.htm index.nginx-debian.html;
server_name 你的域名;#如果沒有的話就別填了QwQ
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
root /var/www/hexo;
access_log off;
expires 1d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
root /var/www/hexo;
access_log off;
expires 10m;
}
location / {
root /var/www/hexo;
if (-f $request_filename) {
rewrite ^/(.*)$ /$1 break;
}
}
}
然后:wq
保存退出,然后使用
service nginx restart
重啟nginx即可,然后你在瀏覽器地址欄中輸入服務器IP,就會展現你/var/www/hexo
目錄下的網頁文件內容了!
Local Update Setting
Step1
安裝上傳插件。
總還是要依賴一個插件的= =
npm install hexo-deployer-git --save
Step2
安裝上傳插件。
在本地的 Hexo 文件存放文件夾下,有一個 _config.yml
編輯它,在底部加上:
deploy:
type: git # 設置上傳模塊為 Git
repo: root@服務器IP:hexo.git # 連接到服務器
branch: master # 存儲在 master 分支(主分支)
Step3
上傳
在 Hexo 本地文件夾下運行:
hexo clean && hexo g && hexo d
然后輸入服務器密碼,然后瀏覽器上打開網站,上傳完成!