## 教你如何使用hexo以及nginx、github搭建属于自己的博客(妈妈级教学)
~~
1.解释一下你要的服务器的效果以及对应的操作
~~ 首先你要有自己的一台服务器,可以是云服务器,或者你可以用自己的电脑作为服务器,(windows也可以的) (1)你有自己的windows(或者linux) 安装hexo以及nodejs即可实现在github上可以访问的远程管理的blog (2)你有租了服务器 安装hexo以及Nodejs,你可以在服务器上创建博客 的同时再将blog远程传到github的blog仓库,这样你就有两个平台.
2.我的平台情况,以及我对你的建议(妈妈级教学,认真看一下你是可以完成自己对应情况的)
ubuntu18.04服务器,github平台 所以我有两种方式访问我的blog: (1)github 仓库
![93129f9cb1c6eaca78df6b3117b24f38.png](https://i-blog.csdnimg.cn/blog_migrate/0b767ba5138998aa1c06f3a851c395e9.jpeg)
(2)服务器访问(nginx挂载): 如果不用服务器,就不需要考虑nginx的事情
![6c5dd325a03b04feca986a8348f79128.png](https://i-blog.csdnimg.cn/blog_migrate/ea47623b2f07e7d4ae152dfbd74c27f8.jpeg)
(1)你不搞服务器,那就直接在你的pc上做下面相同的操作,与nginx相关的都不用管 (2)你搞服务器,那你跟着来,如果你不是ubuntu,是其他的服务器类型,你只需要 去百度一下做相同操作的指令就可(如果你是大佬,请你忽略我说的话),不要太懒
3.安装nodejs,hexo
windows的话,就搜一下怎么安装nodejs和hexo就行
ubuntu指令如下
--- #安装Nodejs
node -v #查看node版本
npm -v #查看npm版本
npm install -g cnpm --registry=http://registry.npm.taobao.org #安装淘宝的cnpm 管理器
cnpm -v #查看cnpm版本
cnpm install -g hexo-cli #安装hexo框架
hexo -v #查看hexo版本
4.创建blog
记得ubuntu的nginx是默认挂载`/var/www/html`目录的,
你可以在任意目录创建自己的blog目录,我是在/var/www/
目录创建的一个目录叫hexo
cd /var/www
mkdir hexo
cd hexo
sudo hexo init #生成博客 初始化博客
hexo s #启动本地博客服务
http://localhost:4000/ #本地访问地址
这些是初始化hexo生成的目录,待会儿会解释你需要哪些
![70c3f9e30cbcdec62de80c741f4331ed.png](https://i-blog.csdnimg.cn/blog_migrate/7ab9ab49fb68a3ef0c7d4963d231ab5e.png)
你可以访问http://localhost:4000/看到一个基本的hexoblog模型
5.写blog
(1)你可以使用CSDN的markdown编辑器进行编辑,导出md文件,然后再传到ubuntu上, (2)或者你也可以直接使用markdown语法进行编写,具体的语法你需要自己去学 我给一个md文件的例子
---
title: test2
date: 2020-08-27 16:39:26
tags:
---
**this is a test2**
其中*表示的是加粗,类似这样,最终将文件保存为md文件,可以直接导入各个平台写文章* 我这里教你怎么用md文件,如果你想直接用hexo使用markdown语法写,我举个例子如下:
hexo n "我的文章" #创建新的文章
之后hexo会在public/_posts目录下自动生成我的文章.md文件,这跟你把md文件直接复制到public/_posts是一样的。都是要对md文件进行编辑
![fca50d5486d64a2103bacc8cfc40e35c.png](https://i-blog.csdnimg.cn/blog_migrate/04627284d97fa0fae467af362c8a3879.png)
6.生成blog
当/var/www/hexo/public/_posts文件夹中有md文件时,你可以通过以下命令生成blog:
#返回hexo目录
hexo clean #清理
hexo g #生成
hexo s #预览,你可以在这里预览自己的blog生成情况
7.配置github
#Github创建一个新的仓库 ‘你的github名字.http://github.io’
![48fbc1a9f93bb561add6496172e6032e.png](https://i-blog.csdnimg.cn/blog_migrate/7848a7f7f335e55ac81a79b73876eb72.png)
![aa755b4b900db1f5c71086a514ad354f.png](https://i-blog.csdnimg.cn/blog_migrate/1f894834e68ce5fc456a2cf5c2e541e5.jpeg)
然后
cnpm install --save hexo-deployer-git #在blog目录下安装git部署插件
我这里的blog目录就是/var/www/hexo,你的是你自己指定的目录
然后配置_config.yml
![afb62ad335aa5a7bc4612befb42f967e.png](https://i-blog.csdnimg.cn/blog_migrate/01e12fc537030dc7b8b4b2f4da3b577d.png)
. . . 打开编辑_config.yml 对于deploy字段,修改如下:
-----
deploy:
type: git
repo: https://github.com/你的github名字/你的github名字.github.io.git
branch: master
-----
完成保存 使用命令hexo deploy
部署blog到你的github项目 https://你的github名字.github.io/ #访问这个地址可以查看博客
重点来了(踩坑教学)
修改_config.yml注意两点,要想你的blog兼容各种主题以及不会出现两篇文章跳转到同一个目录的情况,注意以下: (1)url以及root的配置
![c3e3a98db3094235f9cb5d3e2711fde9.png](https://i-blog.csdnimg.cn/blog_migrate/b87573b4c1da9c5d351aa7d3b7dca271.jpeg)
url设置为github给你分配的访问域名,就是你的github主页地址 root设置为你的仓库名称(刚才设置的是 ‘你的github名字.http://github.io’) 只有这样,你的blog才会正确的展现
(2)permalink的配置
![b6fc2bba3e082c692e1accc9316ef70e.png](https://i-blog.csdnimg.cn/blog_migrate/fff3a88a06923d1535dd04852f114208.jpeg)
这个是标记你的每一篇博客,即每个md文件 生成的链接,这里我是用title作为链接,你可以用其他的,比如日期 ,但是一定要记住,在最前面加上一个“:”
比如permalink: :title/ 而不是permalink: title/
不然你的blog会全部跳转到/title目录下
至此,你的github链的blog就完成了 . .
8.nginx服务器配置blog渲染hexo
这里就是开始你的服务器作为blog的载体的情况, 首先,修改nginx的配置文件
![20728b321536ba016919debd1b1a3bf5.png](https://i-blog.csdnimg.cn/blog_migrate/4259cb574d9824fb881450b8fec729f3.png)
首先,在conf.d文件目录中创建新文件:default.conf,内容为:
server {
# 监听端口
listen 80;
# 监听ip 换成服务器公网IP
# server_name mr-lin.site;
location / {
root /var/www/hexo/public;
index index.html;
}
location ~ .* {
#proxy_pass http://xd-project;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
![18fff29b631defd1e559e9af691f52d5.png](https://i-blog.csdnimg.cn/blog_migrate/f25e22279d9a6d55561d49b718f9753d.jpeg)
好的,这样就可以了,记得,其中的root改为你的blog地址/public才可以,我这里的blog地址是/var/www/hexo,明白?