How to build a blog by Hexo
🍀

How to build a blog by Hexo

Tags
Guide
Published
Apr 3, 2022
📆2021.01 搭建博客似乎是一个很复杂的工作,不过如果能找到一个详细贴心的教程,其实真的很简单.

Step1 本地准备工作

1. 安装node和git

首先需要在本地安装nodegit,如果已经安装好,请忽略这一步。
具体安装方法可移步官网:

2. markdown编辑器

Hexo支持markdown语法写文章,如果平时markdown用的比较多,会比较习惯,我习惯用的是Typora(虽然现在收费了,但是仍然提供以往免费版本的下载链接)

step2. 本地配置Hexo

学习一个东西最好的方法还是看官方文档,这里放一个链接
下面简要介绍一下搭建需要的一些步骤~

1.安装Hexo

直接通过命令行安装hexo
sudo npm install hexo-cli -g

2.生成Hexo

初始化

首先进行初始化,执行下面的命令后会在当前路径下生成一个文件夹,这个文件夹blog是存放你博客的地方,你可以取一个自己喜欢的名字(不一定要叫blog)。
hexo init blog

启动

进入这个文件夹,启动Hexo
cd blog hexo s #启动hexo
启动后,会显示
INFO Hexo is running at http://localhost:4000
点击链接,进入页面,就能看到最原始的画面啦。
到这里,Hexo的安装就完成啦。
下面我们熟悉一下这个文件夹的构造~
blog/source/_posts是放文章MarkDown文件的地方
_config.yml是hexo最重要的配置文件,后面我们还会用到。

生成文章

下面我们可以正式开始创建一些文章了!
hexo new [layout] <title> #new 可以简写为n #最简单的生成文章的🌰 hexo n "My first blog"
如果没有设置 layout 的话,默认使用_config.yml中的 default_layout 参数代替
PS:如果标题包含空格的话,请使用引号括起来
hexo new还可以使用一些参数,下面对这个命令的参数进行介绍:
参数
描述
-p, --path
自定义新文章的路径
-r, --replace
如果存在同名文章,将其替换
-s, --slug
文章的 Slug,作为新文章的文件名和发布后的 URL
🌟如果要指定文件的路径指定路径
默认情况下,Hexo 会使用文章的标题来决定文章文件的路径。对于独立页面来说,Hexo 会创建一个以标题为名字的目录,并在目录中放置一个 index.md 文件。你可以使用 --path 参数来覆盖上述行为、自行决定文件的目录:
#举个🌰 hexo new page --path about/me "About me"

Step3.美化hexo

我们可以给博客使用不同的主题,我的博客目前用的是keep主题,非常简洁又美丽~
还有哪些主题呢,可以参考一下这个网页
不同的主题有自己的使用说明,根据你选择的主题,查看文档,你就可以随意装饰自己的博客啦~

Step4. 购买服务器和域名

我们的网站已经很漂亮啦,可是目前它只是运行在本地,别人是看不到的。
下一步就是要让大家都可以看到(・ω・)ノ
要实现这个,首先我们得有自己的服务器和域名。
以前,我觉得这一步真的好神秘好神奇,其实尝试一下以后,会发现真的没什么啦~
主要就是从腾讯云或者阿里云上买。

买服务器

服务器,我选择的是腾讯云的学生优惠99元一年的(最低配了hh)。
❗️第一年很便宜,第二年续费就血贵了,所以我第二年没有直接续费,而是整了一个新的服务器

买域名

你可以接着在腾讯云或者阿里上买一个域名,不同的后缀价格是不一样的
如何实现域名和服务器的绑定呢?
直接在后台和域名绑定一下就行
可以通过ping一下看看有没有绑定成功(可能绑定后需要过一会才行)
ping lemonhhh.com
如果有显示下面这样的服务器地址,那么就绑定成功了
PING lemonhhh.com (81.69.170.44): 56 data bytes 64 bytes from 81.69.170.44: icmp_seq=0 ttl=49 time=4.078 ms 64 bytes from 81.69.170.44: icmp_seq=1 ttl=49 time=3.656 ms 64 bytes from 81.69.170.44: icmp_seq=2 ttl=49 time=3.676 ms 64 bytes from 81.69.170.44: icmp_seq=3 ttl=49 time=11.046 ms 64 bytes from 81.69.170.44: icmp_seq=4 ttl=49 time=3.597 ms 64 bytes from 81.69.170.44: icmp_seq=5 ttl=49 time=10.908 ms

备案

买好服务器和域名后,还需要向派出所备案。
这个步骤也不复杂,按照它给你的提示做就好了。但是要填一些东西,比如网站的用途呀,也需要上传身份证照片等等。中间还会有人给你打电话询问情况,记得不要拒接。
耐心等待几个工作日后,备案就完成啦。
备案号后记得要把备案号放到网站的最下面,不同主题有不同的方法,可以具体看一下文档(总之这一步很简单)

step 5 服务器部署

在服务器上创建专门的用户:
为了安全,可以创建新的用户(不过直接root也是可以的)
#创建用户 adduser lemonhhh passwd 密码 #修改权限 chmod 740 /etc/sudoers #修改用户 vim /etc/sudoers root ALL=(ALL) ALL 用户名 ALL=(ALL) ALL
配置git
使用下面的命令创建密钥
#创建git密钥 ssh-keygen -t rsa
将密钥复制到下面的文件中
#切换用户 su lemonhhh mkdir ~/.ssh vim ~/.ssh/authorized_keys
本地测试是否能和服务器成功连接
ssh -v lemonhhh@服务器ip
如果能成功链接那这一步就ok啦
接下来的操作会根据服务器是centos还是ubuntu有所不同

🔸centos

创建网站根目录和设置权限
su root mkdir /home/hexo chown lemonhhh:lemonhhh -r /home/hexo
安装Nginx
yum install -y nginx systemctl start nginx.service
修改配置文件
vim /etc/nginx/nginx.conf
进行以下修改
server{ listen 80 default_server; listen [::]:80 default_sercer; server_name lemonhhh.com #这里填你的域名 root /home/hexo;  #这里是你的根目录 }
重启服务器
systemctl restart nginx.service
建立git仓库
su root cd /home/lemonhhh git init --bare blog.git chown lemonhhh:lemonhhh -R blog.get
同步网站根目录
vim blog.git/hooks/post-receive
修改内容如下
#!/bin/sh git --work-tree=/home/hexot --git-dir=/home/lemonhhh/blog.git checkout -f
修改权限
chmod + x /home/lemonhhh/blog.git/hooks/post-receive

🔹ubuntu

安装git和nginx
sudo apt-get update sudo apt-get install git nginx -y
创建git仓库
#创建目录 sudo mkdir /var/repo/ #修改所有权 sudo chown -R $USER:$USER /var/repo/ #修改权限 sudo chmod -R 755 /var/repo/ #进入目录 cd /var/repo/ #初始化git仓库 git init --bare hexo_static.git
配置nginx托管文件目录
创建/var/www/hexo目录,用于Nginx托管,修改目录所有权和权限。
#创建目录 sudo mkdir -p /var/www/hexo #修改所有权 sudo chown -R $USER:$USER /var/www/hexo #修改权限 sudo chmod -R 755 /var/www/hexo
修改Nginx的default设置,使root指向hexo目录.
#用vim打开配置文件(需要用sudo) sudo vim /etc/nginx/sites-available/default
配置文件中需要修改的部分如下:
修改文件中对应的项
... server {   listen 80 default_server;   listen [::]:80 default_server ipv6only=on;   root /var/www/hexo; # 改成上面创建的目录   index index.html index.htm; ...
重启Nginx服务
sudo service nginx restart
创建git钩子
在自动生成的 hooks 目录下创建一个新的钩子文件
vim /var/repo/hexo_static.git/hooks/post-receive
在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。
#!/bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f
保存并退出文件,并让该文件变为可执行文件。
#x是可执行的意思 chmod +x /var/repo/hexo_static.git/hooks/post-receive

Step6: 本地操作

修改配置文件

在本地修改_config.yml文件,要修改的就是两个部分
part1
#这个地方改成服务器ip,别忘了加http,以及冒号和后面的内容之间要有空格 url: http://81.69.170.44  #‼️只修改这里‼️ root: / permalink: :year/:month/:day/:title/ permalink_defaults: pretty_urls: trailing_index: true # Set to false to remove trailing 'index.html' from permalinks trailing_html: true # Set to false to remove trailing '.html' from permalinks
part2
修改git仓库的位置
deploy: type:git repository:lemonhhh@服务器ip:/home/lemonhhh/blog.git #‼️只修改这里‼️ branch:master

在本地部署

每次更新博客以后,都用这个命令更新
hexo clean hexo g -d
然后通过域名访问blog就ok啦