搭好博客的第一篇文章
前言
搭建个人博客有很多种选择。就我所知道的
一种途径是基于 GitHub 仓库,使用 GitHub Pages,可以自定义域名
或者依托静态服务托管商,GitHub 仓库 -> Netlify/Vercel,不需要服务器,可以自定义域名
最后一种就要麻烦一些了,需要有自己的服务器和域名,本站创建时采用的这种,故有此篇文章
如站点时间轴所言,我已转向第二种方式,本站静态文件大小总计不到 5 MB,使用托管是省心而经济的,这也是 Hexo/Hugo 相较于 WordPress 的优势,静态站抗打,没有各种漏洞可被攻击,无需自己花费心力维护服务器。所以本篇文章也许不再有什么参考价值了,将文件托管到 GitHub 公开仓库,直接 git clone 到服务器都要快得多!
注意事项
- 应该说,这更像是一篇笔记,简单记录一下我的搭建过程和心得,网络上也可以搜索到更多详细的教程
- 教程要结合来看,每个人遇到的坑都不一样,可能解决一个问题要参考好几篇文章
- 没有 Linux 基础不要紧,但最好有一定的计算机网络知识,会计算机基础操作
- 一年后回头来看,这第一篇文章显得非常浅显,实用意义非常小,各位不要再参考了,本来已经写了不少更新的内容,还是删掉大半算了,就这样吧
配置本地环境
Git
简介:在Linus创建了开源的 Linux 之后,为更好地管理 Linux 内核,他花两周时间写出了 Git,时至今日,Git 已经是世界上最流行的分布式版本控制系统
安装过程:根据自己的操作系统,下载 Git,安装时需要注意的有两项
【Adjusting your PATH environment】这里我是选择了【Use Git from Git Bash only】完全不修改系统环境变量,仅在 Git Bash 中使用各种命令
【Configuring the line ending conversions】这一项请参考Travis CI 使用 Windows 环境时换行符自动转换为 CRLF 的解决方案
安装完成后右键打开 Git Bash Here 键入 git --version
(在新版 Git 中,安装时会默认添加 Windows Terminal 配置,Windows 10 20H2 以及之后版本的系统也默认把 Windows Terminal 添加到了右键菜单,故在推荐在 Windows Terminal 中使用 Git Bash,下面所有提到右键打开 Git Bash Here
的地方同理)
出现版本号即安装成功,关于如何生成公私钥和设置 Git 提交信息就不讲了
Node.js
简介:Node.js 并不是一门编程语言,而是基于 Chrome V8 引擎的 JavaScript 运行环境,我们的博客框架 Hexo 就是依赖其运行,不过我们仅仅安装好这个环境就行了,并不会有其他操作
安装过程:根据自己的操作系统,下载最新的 LTS 版本 Node.js,安装选项同样默认即可,完成后在命令行敲 node -v
和 npm -v
做例行检查。(注:npm
是 Node.js 附带的包管理器。npm
是一个命令行工具,用于从 NPM Registry 中下载、安装 Node.js 程序,同时解决依赖问题,我们下面也会用到 npm
命令)
Hexo
简介:Hexo 是一个快速、简洁且高效的博客框架,但除此之外,还有号称更简单更快的 Hugo,当然,这该由读者自己来比较选择
在合适的地方新建你的博客文件夹,如 D:\blog
,在 blog 文件夹里右键打开 Git Bash Here
,依次键入
1 | $ npm i hexo-cli -g # i=install g=global(全局安装)除此之外还有 --save 啥的,我也不太懂 |
往后我们所有的操作都在 blog 文件夹里进行,前期出问题不要怕,大不了备份配置文件,把 blog 删了,重新初始化环境
附上要用到的几个基本操作命令:
1 | $ hexo new "title" # 新建一篇文章,标题包含空格的话,请使用引号括起来 |
更多的命令和配置请参考 Hexo文档
配置服务器环境
这部分可能写的不太好,我也是才接触这块
云服务器
国内不多讲,24岁以下购买会很便宜,国外主机商选择就有很多了,参差不齐上百家
域名
国内的推荐腾讯,活动价非常低,国外的选择也很多,我用的是 NameSilo
Git
这个要着重记录一下,也是困扰我好几天的东西
先把要用到的 Linux 命令罗列一下
1 | $ chmod # 控制用户对文件的权限 |
安装 Git
SSH 连接到云服务器,先更新下软件源,apt update
,再安装 git,apt install git
,遇到提示输入 y
即可,完成后 git --version
进行检查
创建 git 用户
执行 adduser git
自己设置一个强密码,可以记到本子上(这里使用 useradd
命令好像也行,而且不用设置密码,但能不能通过密钥连接服务器就不知道了)
赋予 git 用户 sudo 权限
sudo ,即 superuser do ,执行 chmod 740 /etc/sudoers
,注意这一步,可能会提示找不到命令(-bash sudo : command not found),比如我的系统(又坑了我一把),执行下 apt install sudo
应该就行了
然后执行 vim /etc/sudoers
打开 sudo 权限控制,找到
1 | # User privilege specification |
在 root ALL=(ALL:ALL) ALL
这一行下面添加 git ALL=(ALL:ALL) ALL
这里说一下,vim是个非常强大的编辑器,但我不会用(诚实),进入文件编辑后,按 i 进入 insert 模式,输入操作完成后,按一下 Esc
,输入 :wq
保存并退出,然后把文件修改回只读, chmod 440 /etc/sudoers
,可能这里有人会问,740、440是啥意思?简单地说,文件的权限,分别为 r,w,x (读,写,执行),r = 4,w = 2,x = 1,rx = 5,rw = 6,rwx = 7,因此 chmod 740 代表的意思就是,该文件归属的用户(即root)具备读写执行权限,同一组的用户具备读权限,其他用户没权限······其中目录权限和文件权限含义还是不一样的,讲起来就赘余了,烦请自己查阅
关闭 git 用户 shell 权限
git 也是可以 SSH 连接到服务器的,但这不太安全,如果你没有设定密钥密码,任何得到私钥的人都可以登录你的服务器,所以我们只需要能对仓库操作就可以了,执行 vim /etc/passwd
,将最后一行的 git:x:100x:100x:,,,:/home/git:/bin/bash
修改为 git:x:100x:100x:,,,:/home/git:/usr/bin/git-shell
(或者是在创建时就指定 shell 并添加到 root 组,useradd -d /home/git -G root -s /home/git:/usr/bin/git-shell git
,但我还没试过,等以后有机会再部署服务器了再更新)
初始化 git 仓库
1 | $ cd /home/git # 切换到 git 用户目录 |
创建网站目录
1 | $ cd /var/www/ # 切换目录,或者其他你想创建网站的目录 |
配置 SSH
1 | $ cd /home/git # 切换到 git 用户目录 |
把本地的公钥里面的内容复制到 authorized_keys 文件里,这样我们就可以用本地私钥免密码登录了
用户组管理
1 | $ ls -l /home/git/blog.git/ |
检查 blog.git
、.ssh
、blog
等目录的用户组是否为 git:git ,若不是,执行以下命令
1 | $ chown -R git:git /home/git/blog.git/ |
再次查看,看修改成功没
配置 Git Hooks
创建 post-receive 文件
1 | $ cd /home/git/blog.git/hooks # 切换到 hooks 目录下 |
把下面的代码复制到里面
1 | GIT_REPO=/home/git/blog.git |
赋予可执行权限:chmod +x post-receive
,然后该文件用户组也要是 git:git 哦,用前面的命令检查一下吧
Nginx
安装配置 Nginx 并添加对网站的反向代理,比较复杂
参考
小丁的个人博客 - Hexo 博客部署到 VPS
结束语
以上工作完成后,剩下的事情就是选择主题,美化页面。然后,就可以正式开始敲字啦,文章格式是 md
,即 Markdown,是一种可以使用普通文本编辑器编写的标记语言,本文所有的格式控制,包括多级标题,代码块,目录(TOC)等等都基于此