hexo 搭建个人博客(github + 阿里云)
前言
写博客基本上是每一个程序员都需要做的事,但是在哪里发布是一个比较头疼的问题,当然可以发布在掘金、CSDN这些平台上,但是如果有个人的站点岂不是更好,可以随心所欲的进行配置。
准备工作
安装 node
Hexo 是基于 node,所以需要安装 node.js,如果你也是搞前端的电脑里一定有 node,下长期支持版(LTS)就可以,安装比较无脑,next 下去就可以。
安装完成之后,在命令行里输入 node -v
和 npm -v
来分别验证 node 和 npm(node 的包管理器)是否安装成功
安装 Git
为什么要安装 git 呢,无论我们是部署到 github 上还是自己的服务器上都需要用到 git 来实现自动化的部署。
安装完成后通过 git --version
来查看是否安装成功
安装 Hexo
使用 npm 安装 Hexo 的 cli 工具,类似于 vue 那样,选择全局安装比较方便,如果npm玩的比较好的可以选择其他的安装方式。
1 | npm i -g hexo-cli |
通过 hexo version
验证安装是否成功
本地搭建 hexo 项目
就像 vue 项目那样,我们的博客也是一个项目,通过 hexo 来搭建
1 | hexo init <projname> |
最后我们的项目目录结构应该是这样(忽略 .deploy_git
):
source/_posts
目录下的 .md
文件是我们的博客源文件
themes/
目录下是博客的主题,默认有一篇 hello world
_config.yml
是我们博客站点的配置文件
public/
是我们博客的页面文件
我们先来试试一些常用的操作,打开 localhost:4000
会看见:
1 | 将 md 生成 静态页面 |
更改主题暂不涉及,可以看看别的博客
部署到 github 上
首先我们需要注册 github 的账号,然后新建一个仓库,仓库名:username.github.io
,这一点很重要!!!
就像这样:
然后复制仓库克隆的链接,在 _config.yml
中设置 deploy
1 | deploy: |
将自己的博客部署到 github ,接着打开 https://username.github.io/
,例如我的就是 https://xiefenga.github.io/
1 | hexo d |
部署到阿里云
准备
首先我们需要购买 云主机,然后连接到该主机进行操作,有两种方式(以我的轻量应用服务器为例)
为了可以自动化部署,我们需要在本地生成 ssh 密钥,这样我们就可以在本地直接提交代码到远端 git 仓库。
1 | ssh-keygen -t rsa -C "你设置的邮箱" # 接着连着回车不用管 |
如果是第一次下 git,需要先配置 git 的用户名和密码
1 | git config --global user.name "用户名" |
生成的密钥在 用户/用户名/.ssh/
连接主机
使用 阿里云控制台自带的 网页终端
通过 ssh(建议,操作方便)
添加密钥后,下载(只有一次下载机会,后缀为 .pem
),然后自己在命令行中通过 ssh 远程连接服务器
1 | ssh root@ip -i .\xxx.pem |
配置 git
安装 git
我们需要在服务器上 安装 git,因为部署的原理和使用 github 差不多,中途需要输入 y
确认
1 | yum install git |
创建 git 账户
1 | adduser git |
找到下面的内容,然后输入 i
在后面插入内容,接着 esc
:wq
保存退出
1 | # Allow root to run any commands anywhere |
在这个后面添加的内容
1 | git ALL=(ALL) ALL |
接着就是完善设置(Linux 输入密码的时候是不会显示的)
1 | 修改权限 |
让本地的 git 能免密登录服务器的 git
将我们在win10中生成的 id_rsa.pub 文件中的公钥复制到 authorized_keys
1 | su git |
接着回到 win10 桌面,测试是否配置成功
1 | ssh -v git@ip |
建立 git 仓库
1 | 回到 root 账户 |
复制的内容:
1 | !/bin/bash |
接着建立网站的根目录:
1 | mkdir /var/hexo |
使用宝塔面板
安装之前记得先要再 阿里云的控制台把 8888 端口的限制打开
安装宝塔面板
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh |
接着按安装完成的提示信息用浏览器打开宝塔面板的后台,然后在软件商店 安装 nginx
然后在网站那一栏,新建网站,如果有域名就填域名,没有就先瞎填一个
然后点这个网站的设置,如果是没有域名,就先点击域名,新增一个域名(填 ip),然后修改配置文件和网站目录
然后重启宝塔面板
修改 hexo 配置
修改 _config.yml
文件
1 | deploy: |
接着最后一步:
1 | hexo clean |
参考文章: