博客地址:http://vultrace.cn,域名還在審批,就先用IP湊活湊活吧。
使用hexo框架搭建博客,網上已經有非常詳細的文章,不過搭建的過程中還是遇到了一些問題和收穫,覺得還是有必要記錄以下,以方便大家參考。
參考文章:
hexo從零開始到搭建完整
Hexo搭建-部署服務器
服務器配置
在進行博客搭建時,使用的是阿里雲的ECS,系統是阿里雲定製的Linux系統,實際上就是CentOS。
nginx安裝及配置
直接使用yum命令安裝nginx服務器,並啓動服務。
// 安裝nginx
yum install -y nginx
// 啓動nginx服務
systemctl start nginx
systemctl enable nginx
由於這臺機器專門用於運行博客的,因此在進行nginx配置時,我的做法比較簡單粗暴,直接更改/etc/nginx/nginx.conf
文件的server,將root更改爲博客的存放目錄。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /home/www/website;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
創建上面定義的博客的存放目錄。
cd /home
mkdir www
cd /www
mkdir website
node環境安裝
如果直接使用yum源安裝node版本會比較老,印象中好像是6.幾,直接下載編譯好的源碼進行安裝: node下載地址,下載Linux Binaries (x64),由於使用WGET下載速度非常慢,建議在本地下載,然後通過DMS進行傳輸。
// 解壓
xz -d node-vxxx-linux-x64.tar.xz
tar -xf node-vxxx-linux-x64.tar.xz
// 建立軟鏈接
ln -s /opt/node-vxxx-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-vxxx-linux-x64/bin/npm /usr/bin/npm
// 測試
node -v
npm -v
安裝GIT並配置倉庫
// 安裝GIT
yum install git
// 配置GIT用戶
adduser git
// 修改用戶權限
chmod 740 /etc/sudoers
vi /etc/sudoers
然後在root ALL=(ALL) ALL
用戶的下方添加git ALL=(ALL) ALL
,保存並退出。
將sudoers文件權限改回chmod 400 /etc/sudoers
,並設置git用戶的密碼sudo passwd git
。
切換到git用戶,然後在~目錄下創建.ssh文件夾。
su git
cd ~
mkdir .ssh
cd .ssh
生成公鑰密鑰文件,啥都不要輸入,直接enter就行,並複製id_rsa.pub公鑰文件.
ssh-keygen
cp id_rsa.pub authorized_keys
修改權限並測試ssh連接功能。
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
// 本地測試
ssh -v [email protected]
創建一個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
錯誤提醒
完成以上配置後,在進行部署時,經常會出現如下錯誤。
remote: fatal: cannot create directory at '2019': Permission denied
並且部署目錄/home/www/varcn/
裏並沒有推送的文件,出現這個問題可能是你的部署目錄/home/www/varcn/
沒有寫權限導致的,添加寫權限只能就可以了。
cd /home/www
chmod go+w website
本地環境配置
nodejs安裝
本機環境爲Mac,直接下載相關安裝包進行安裝,使用如下兩個命令校驗是否安裝成功。
$ node -v
v14.3.0
$ npm -v
6.14.5
安裝hexo
使用命令npm install hexo-cli -g
安裝hexo,使用hexo -v
測試是否安裝成功。
$ hexo -v
hexo: 4.2.1
hexo-cli: 3.1.0
os: Darwin 19.4.0 darwin x64
node: 14.3.0
v8: 8.1.307.31-node.33
uv: 1.37.0
zlib: 1.2.11
brotli: 1.0.7
ares: 1.16.0
modules: 83
nghttp2: 1.40.0
napi: 6
llhttp: 2.0.4
openssl: 1.1.1g
cldr: 37.0
icu: 67.1
tz: 2019c
unicode: 13.0
初始化博客
創建一個空文件夾用於存放博客的相關代碼,cd
進入該文件夾,使用hexo init
初始化博客項目,博客項目包含以下幾個文件。
- node_modules:是依賴包
- public:存放的是生成的頁面
- scaffolds:命令生成文章等的模板
- source:用命令創建的各種文章
- themes:主題
- _config.yml:整個博客的配置
- db.json:source解析所得到的
- package.json:項目所需模塊項目的配置信息
使用hexo server
命令運行博客,打開瀏覽器訪問 http://localhost:4000 就能夠看到博客運行的效果了。但是初始的博客其實非常簡陋,需要配置相關的主題來讓整個博客更加豐滿。
主題配置
hexo包含非常豐富的主題,可以訪問相關themes來選擇自己喜歡的主題,我這裏選擇的是我個人比較喜歡的一個主題:snail。
進入上一步初始化完成後的博客目錄,執行以下操作。
$ cd blog
$ rm -rf source
$ rm -rf scaffolds
$ rm _config.yml package.json README.md LICENSE
$ git clone https://github.com/dusign/hexo-theme-snail.git
$ mv ./hexo-theme-snail/snail ./themes
$ mv ./hexo-theme-snail/* ./
$ npm install
爲方便博客字數的統計,需要安裝WordCount。
npm install hexo-wordcount --save
在_config.yml文件中將theme更改該snail,默認情況下應該是已經更改好了。
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: snail