搭建自己的博客(二):配置部署

· 博客美化
HexoWindowsNodejs博客NginxLinuxCentOS

本地Windows环境配置

我用的是win11,和win10环境配置没有差别(大概?),网上的教程都没有特别说明win11与win10的不同,我这里就记录一下我自己的操作

安装Node.js

直接去Node.js官网下载Windows 64-bit安装包即可,安装时不需要特别注意勾选什么,一路下一步即可。安装包的好处就是不需要自己刻意配置环境变量。

随便打开一个终端,检查是否安装成功

node -v
npm -v

能正确显示版本号即安装成功

安装Hexo

安装Hexo需要Node.js正确安装。

随便打开一个终端,输入以下内容安装Hexo

npm install -g hexo-cli

查看是否安装成功

hexo -v # 或者 hexo v

使用Hexo

Hexo的作用是,在某一个文件夹下生成博客框架。

hexo init 你自己定的博客路径
# ex:hexo init D:\MyBlog

部署自己的博客肯定要好看的,hexo初始的博客框架不难看,也说不上好看,想要好看的可以上Hexo官网找找,我使用的是Fluid。

安装主题有两种方法,一种是使用npm命令安装,一种是git clone复制主题到项目文件夹下。需要注意的是,npm安装的主题并不会出现在项目themes文件夹下,而git下载的主题会保存在themes文件夹下。各个主题有自己的配置文档,Fluid也有自己的帮助文档,可以更改具体的配置项。这里就不多说了

编辑博客路径下_config.yml文件内容,文件里的各项该如何修改,请查看官方文档,特别是里面的deploy项,这里我放下我的部分配置供参考

title: CNWJY
subtitle: ''
description: ''
keywords:
author: Conan-jine
language: zh-CN
timezone: ''

url: http://ip # ip 换成自己服务器的公网ip

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: fluid

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: root@ip:/var/repo/blog.git # ip 换成自己服务器的公网ip
  branch: master

hexo的命令很简单

# 查看hexo命令
hexo help

# 清除生成的静态文件
hexo clean

# 生成静态文件
hexo generate

# 查看部署在本地的效果
hexo server

# 将博客上传到服务端,需要配置好_config.yml文件的deploy项和服务端
hexo deploy

生成本地公钥

本地公钥是用来连接服务器的,服务器需要知道本地的公钥才能允许本地进行连接,否则hexo deploy命令无法成功

# 生成公钥
ssh-keygen -t rsa -C "自己的邮箱"

# 查看本地的公钥
cat ~\.ssh\id_rsa.pub

服务端Linux(CentOS)配置

安装git和nginx

sudo apt install nginx git

git的作用是接收本地的博客,nginx的作用是将git接收的博客呈现给互联网用户

添加git用户并设置密钥

sudo adduser git
su git
cd
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys

创建供Nginx发布的git仓库

sudo mkdir -p /var/repo    #新建目录,这是git仓库的位置
sudo mkdir -p /var/www/hexo
cd /var/repo  #转到git仓库的文件夹
sudo git init --bare blog.git #创建一个名叫blog的仓库

使用git-hooks实现自动部署

sudo vim /var/repo/blog.git/hooks/post-update

post-update内容如下

#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

给post-update授权

cd /var/repo/blog.git/hooks/
sudo chown -R git:git /var/repo/
sudo chown -R git:git /var/www/hexo
sudo chmod +x post-update  #赋予其可执行权限

配置Nginx

cd /etc/nginx/conf.d/
vim blog.conf

blog.conf部分内容如下,ip 换成自己服务器的公网ip,空格隔开还可以添加域名

server {
        listen 80;
        listen [::]:80;
        root /var/www/hexo;

        server_name ip;
        location / {
                try_files $uri $uri/ =404;
        }
}

成果测试

本地终端进入博客所在路径,执行以下命令

hexo g && hexo d

浏览器输入自己的服务器ip或者域名即可访问

因文章是在我自己配置成功后才写的,有些细节忘了,如果你按照本文章配置博客,过程中有错误,或者没有达到想要的效果,可通过上方关于页联系我,我将会补充到本文中去。

安装证书

使用Cerbot自动安装证书,这样就可以用https访问了,浏览器再也不会提示网站不安全啦