博客相关|hexo博客诞生及托管服务的选择
hexo博客的搭建
安装 Node.js
首先需要下载 Node.js,请到 node 下载界面,选择适合您的操作系统的 nodejs 安装包,下载安装。
本文不主要讲述这些软件的安装,如果在下载安装过程中遇到问题,请自行 google or baidu 。
安装 Git
- Windows:下载并安装 git。
- Mac:使用 Homebrew, MacPorts 或者下载 安装程序。
- Linux (Ubuntu, Debian):
sudo apt-get install git-core
- Linux (Fedora, Red Hat, CentOS):
sudo yum install git-core
配置 git 开发环境
将 yourname 和 youremail 替换为你自己的用户名和邮箱。
1 | # 初始化本地用户 |
hexo 建站
找一个放置本地博客文件的目录,依次执行以下几条指令:
1 | npm install hexo-cli -g |
随着 hexo server
可缩写为 hexo s
指令的运行,您的浏览器会自动打开本地运行的博客网站。
如果您想对生成的文件有基本的认识,可以浏览 hexo 官网建站文档。
模板文件夹
这里我们先重点介绍模板文件夹。当您新建文章或页面时,Hexo 会根据 scaffold 来创建文件。
如果您修改 scaffold/post.md
中的 Front-matter
内容,那么每次新建一篇文章时都会包含这个修改。
下面是我的推荐(复制到 post.md 后删除注释):
1 | ---- |
托管服务
关于博客的托管,只介绍两种方案:
- Github 方案: 需购买域名(推荐),以及 Github 账号。整体成本较低,操作简单,缺点是国内用户访问速度上的限制。
- 云服务器方案: 需购买云服务器,域名(备案所需时间也比较长)。优点就是访问阅读体验好,缺点就是麻烦、繁琐。
Github 方案(新手推荐)🙂
登录 Github 新建仓库。
- 仓库名: 必须是
用户名.github.io
,这是默认可访问域名。 - Public: 必须是
Public
,不能是Private
,否则别人不能访问。
进入仓库,复制 HTTPS
链接或者 SSH
(推荐) 链接。
修改 deploy
打开博客根目录下的 _config.yml
文件,在该文件的最下方进行如下设置:
1 | deploy: |
- repo:粘贴你刚从 Github 新建仓库的链接。
- branch:设置为 main 。
在推送到 Github 仓库之前需要安装一个插件:
1 | npm install hexo-deployer-git --save |
安装完成后在终端执行以下命令:
1 | hexo c && hexo g && hexo d |
再打开 Github 博客仓库就可以看到文件已经上传。我们转到 Setting -> Pages 设置,点击 Visit site ,就可以看到部署的在线博客页面了。
云服务器方案(高手推荐)🫡
云服务和域名选购
国内能选择的主流云服务厂商也就三家:阿里云、腾讯云和华为云。自己看哪家优惠力度最大选择哪一家,值得注意的是:域名和云服务器最好选择同一家购买,避免域名备案麻烦。(备案本身就很麻烦,吐槽😒)
在创建服务器实例后,完成修改密码和打开 80 端口的操作,参考阿里云服务器80端口开通教程。
创建 git 用户并配置 sudo 权限
至于怎么远程 ssh 服务器我就不讲了,我默认你会🤝。
- 创建 git 用户。
1 | sudo useradd git |
- 添加 sudo 权限
1 | sudo usermod -G sudo git |
- 添加 root 权限
1 | sudo vim /etc/sudoers |
修改文件内容如下:
1 | # 找到 root ALL=(ALL) ALL |
- 修改 git 用户密码
新建用户默认无密码,需要自己修改创建。
1 | sudo passwd git |
git用户登录免密操作
关于远程 ssh 的免密操作,可以看我这篇文章 【工具指南】VSCode配置远程ssh免密登录,也可以跟着我下面的操作。
在服务器的 git 用户下重新执行配置 git 开发环境。
然后将本地生成的 id_rsa
和 id_rsa.pub
内容复制替换服务器生成的 id_rsa
和 id_rsa.pub
的内容,这一步自己操作。
个人使用,我推荐所有机器使用同一份公钥私钥。
之后执行以下操作即可完成免密登录:
1 | cat id_rsa.pub >> authorized_keys |
测试从本地机器是否可以通过 git 用户免密登录服务器。
1 | ssh git@<yourhost> |
创建网站根目录
首先使用 git 用户登录服务器,之后执行:
1 | cd ~ |
说明: 此为网站根目录对应的 Web 端的网站发布目录,具体放在哪里可以自行设计。
初始化 Git 裸仓库并配置自动化部署
1 | cd ~ |
执行完以上操作后,在 Git 仓库目录(~/hexo/git/blog.git
)下,会有一个自动生成的 hooks
目录。在 hooks
目录下创建一个新的钩子 post-receive
,用于自动化部署。
1 | vim /home/git/hexo/git/blog.git/hooks/post-receive |
在文件中添加以下内容,其中工作树目录和 Git 仓库目录要按照实际创建位置修改:
1 |
|
为文件修改所属和增加可执行权限。
1 | chown git:git /home/git/hexo/git/blog.git/hooks/post-receive |
安装并配置 nginx
安装 nginx
1 | sudo apt-get install nginx |
修改 Nginx 的 default
文件使得 root 指向刚刚创建的 /var/www/hexo
目录:
1 | sudo vim /etc/nginx/sites-available/default |
修改 Nginx 的 nginx.conf
文件,将 user 用户改为 root
以使得 nginx 具有访问权限。
1 | sudo vim /etc/nginx/nginx.conf |
最后重启 nginx 服务。
1 | service nginx restart |
使用 git 部署本地 hexo 到服务器
打开博客根目录下的 _config.yml
文件,在该文件的最下方进行如下设置:
1 | deploy: |
其中 yourhost 是你的服务器地址。
在推送到 Github 仓库之前需要安装一个插件:
1 | npm install hexo-deployer-git --save |
接着执行生成渲染文件并推送到服务器的操作:
1 | hexo c && hexo g && hexo d |
然后在您的浏览器使用 IP 进行访问。
配置域名
Github 方案配置域名
在你所购买的云服务器网站的域名解析填写主机记录、记录类型和记录值。
- A 记录类型
A 记录类型的主机记录是 @
。
A 记录类型的记录值可通过以下操作获取:
1 | ping githubname.github.io # 简单点就是你之前访问的 Github 方案的默认域名 |
把获取的这个 IP 地址记录到 A记录类型的记录值里。
- CNAME 记录类型
CNAME 记录类型的主机记录是 www
。
CNAME 记录类型的记录值是:
1 | githubname.github.io # 如我的就是 wmjim.github.io |
在本地的 hexo 文件中找到 source 目录(博客根目录下),并在其中添加一个没有后缀的文件 CNAME
,在文件中添加域名。
在终端执行如下命令,重新生成文件并上传。
1 | hexo c && hexo g && hexo d |
之后在 github 的博客项目仓库的 Setting -> Pages -> Custom domain 填入你的域名。
云服务方案配置域名
云服务器方案配置域名就简单一些,只需要配置一个 A 类型,并把主机记录修改为 www
和记录值设置为你的服务器地址即可。
按照以上操作就完成了服务器的域名解析,但是云服务的方案国内是需要备案才能使用的。
TODO
域名备案操作