hexo博客搭建,看這篇就夠了

博客地址: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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章