Re:从零开始的博客搭建

看到同学有个人博客,心里痒痒的,想着也搞一个去,但是网上的博客都是在别人服务器上,感觉太被动,我不喜欢。就去百度了下建站的过程,好像...并不难的样子

于是,开搞!

期间踩了无数坑,百度和谷歌了无数次,软件装了又卸,卸了又装,连服务器系统都重装3次

算是对的起标题的 "RE" 了。写这篇文章是打算记录下我搭建的过程,也算是个备忘录吧,个人的记性实在是不好,不知道什么时候就忘了

搭建的事前准备

  1. 一个独立域名
  2. 一台linux计算机,不管是自己的还是别人的(服务器空间)

购买域名

购买域名的目的是人别人更好的记住你的博客,虽然Hexo静态博客不绑定自己的域名也可以通过Github分配给你的永久连接访问,个人建议还是买一个独立域名,说不定别人就被你与(diao)众(zha)不(tian)同的域名吸引了呢~

域名首选以.com为后缀的,国际通用,简单好用,如何购买请自行百度或谷歌“域名购买”或“域名注册”,网上有非常多非常详细的教程,这里就不叙述了。

购买服务器空间

由于Hexo博客是部署在Github的仓库上的,可以不使用服务器,但是我这里的小水管基本等同于没有,更重要的在我疯狂百度时领到了一张tx的代金券,so...就买了tx的云服务器,还送了个一年的域名

所以,不想增加开销的可以跳过这步,使用自己的电脑搭建,但是需要用到Node.js,所以

不要使用Windows!!!

不要使用Windows!!!

不要使用Windows!!!

Windows版的Node.js根本就是残疾版,别问我什么知道...

回归正题,服务器空间有一般有以下几种

  • 虚拟主机
  • VPS
  • 云主机
  • 独立服务器

想要了解各个的优缺点及差异,可以看看下面的介绍

虚拟主机、VPS和云服务器的特点与差异性? ———— 知乎

全面解析:虚拟主机、独立服务器、VPS及云主机 ———— 亿恩IDC资讯

我买的就是属于云主机,多亏是云主机,让我省了不少事。

还有,构架在大陆的且用于网站服务器的空间是一定要备案的,不想麻烦的话可以购买香港或国外的空间。但是这里我们并不是用于网站的服务器作用,只是将markdown解析成静态html页面,然后再部署到github仓库上,所以并不需要备案。

服务器空间的选择实在是太多了,个人也没什么推荐,只知道亚马逊AWS可以免费使用一年,其他的可自行百度或谷歌。

正式开始

接下来就正开始我们的Hexo博客搭建。

服务器设置

有了服务器之后需要对服务器进行一系列设置。

首先,重装系统,一个合适的系统会让你的操作更加得心应手。

选择合适自己的操作系统,我选了Debian 9,因为习惯了了Ubuntu,apt-get 命令实在是太方便了。重装系统后,root的密码是不变的,这点谨记。

设置安全组,让必要的端口暴露出来。tx的云主机为了安全,设置了安全组,只有在安全组之内的端口才能够使用。

关于更多安全组的信息,请参见 帮助与文档 ———— 腾讯云

远程登录服务器空间

一般使用SSH远程登录到服务器,Winows下常用的远程登录软件有PuTTY和Xshell,前者为自由软件,后者为商业软件,可以根据自己的喜好选择,这里选用Xshell作为介绍,PuTTY也是大同小异。

打开Xshell,新建会话

确定之后就可以使用可以空间商给你提供的账号和密码登录了。

创建新用户

一般来说,不建议使用root用户来搭建Hexo博客,很有可能会发现不可预料的错误,甚至是只有你才会发生的问题,别人都没有,百度和谷歌都找不到解决办法。为了避免这些问题,我们需要一个不是root用户但是有管理员权限的用户。

在root用户下,新建git用户(用户名可以自己取,但是要好记)

adduser git

修改系统文件权限

chmod 740 /etc/sudoers

使用Vim编辑器打开

vim /etc/sudoers

找到

# User privilege specification
root    ALL=(ALL:ALL) ALL

在这下面添加一行

git ALL=(ALL) ALL

保存后退出,更改回原来的权限

chmod 400 /etc/sudoers

然后为你的新用户设置密码

passwd git

好了,一个有权限的用户就新建完成了。

Hexo环境配置

切换git用户,后面的操作都在git下进行,遇到需要权限的只需要在前面加上 sudo 就行

su git

安装 Node.js 8

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

安装 Git

sudo apt-get install git-all

Hexo安装及初始化

安装完上面的必要软件后就可以安装Hexo了。使用npm命令安装Hexo。

sudo npm install -g hexo-cli

选择初始化Hexo的目录,一般目录都会选择自己的家目录下。进入家目录

cd ~

初始化Hexo,Hexo将会在指定目录下新建所需要的文件,<folder> 即目录名。

Hexo init <folder>
cd <folder>
sudo npm install

一般都会用 blog 作为目录名,所以

Hexo init blog
cd blog
sudo npm install

新建完成后,blog的目录结构如下

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

如果你的目录结构和上面示例的一样,说明正确初始化了,如果发现目录或文件不全,说明Hexo没正确初始化,请删除整个blog目录重新初始化。

Hexo 博客预览

要想本地预览Hexo博客,必须安装本地服务器。Hexo 3.0 把服务器独立成了个别模块,必须先安装 hexo-server 才能使用。

cd blog
npm install hexo-server --save

注意,不加 --save 会安装失败!

启动Hexo本地服务

hexo server

如果发现不能启动服务,请返回上面仔细检查安全组内是否有4000端口,或者检查端口是否打开了,或者检查端口是否被其他程序占用!

启动服务之后可以使用 http://localhost:4000 访问你的Hexo静态博客了。由于我们是在服务器空间上,所以把 localhost 换成 你空间的公网IP 就可以了。例如:http://192.168.0.1:4000

怎么样?是不是很激动?有种<del>欣(da)喜(le)若(ji)狂(xue)</del>的感觉?别急,还没完成呢

写第一篇博文

博客已经成型,来写第一篇自己的博文吧。使用下面的命令创建新的文章,这会生成一个Markdown文件,默认在 blog/sources/_posts 目录下

hexo new "你好,Hexo"

使用Vim编辑它

vim /sources/_posts/你好,Hexo.md

然后使用下面的命令生成静态文件

hexo generate

当然,是可以简写的

hexo g

启动服务

hexo server

在浏览器输入地址,就可以看到自己写的文章啦~

配置Github

接下来,要将Hexo部署到Guthub仓库上,让别人也可以访问你的博客,成为一个真正的网站。首先,需要进行配置。

  1. 注册Github账号

打开Github,申请一个账号,有账号的就可以跳过啦~

  1. 新建仓库

注册完成后登录Github,点击右上角的"+",d点击"New repository"

进去后,填写格式如下,把 yourusername 替换成的你用户名。

注意:格式一定是要是 yourusername.github.io 不然后面的步骤会报错!!!

  1. 告诉Git你是谁

要想部署到Github,Git必须先知道你是谁。

git config --global user.name"你的Github用户名" 
git config --global user.email"你注册Github时填的邮箱"
  1. 设置部署路径

进入blog目录,编辑配置文件_config.yml

cd blog
vim _config.yml

拉到最后,找到 deploy: ,修改如下,把 youruesername 替换成你的Githu用户名

deploy: 
    type: git
    repo: https://github.com/yourusername/yourusername.github.io.git
    branch: master

注意:配置文件中的内容,":"后面都有个空格,不能省略,不然会报错!!!

部署到Github

开始正式将Hexo部署到Github,完成这一步,一个真正的博客网站就搭建好了。

清除缓存文件和已生成的静态文件

hexo clean

生成静态文件

hexo generate

部署到Github

hexo deploy

合并简写

hexo d -g

或者

hexo g -d

这两个命令都是可以的。然后会提示你输入你的Github账号和密码,输入后没有任何报错,就证明部署好了。接下来在浏览器输入Github给你供的永久连接http://yourusername.github.io就能进入你的博客啦~~这个连接除非Github服务器出问题了,不然是永久有效的。

不容易啊!快要泪流满面的对不对?我当初建好的时候可是大叫了出来,旁边的人看我眼神都不对了(玛德,zz!)

域名绑定

虽然可以通过上面的永久链接访问你的博客,但是这一点都不个性化,也很繁琐,让你的博客有个自己独立的域名,是十分必要的。

域名解析

进入你购买的域名的域名管理,选择解析

然后点击"添加记录",会有提示

这里要说下,这里记录类型有人填"A",也有人填"CNAME"。A类型就是填你的永久链接指向的IP地址,CANME类型就是直接填你的永久链接。但是,Github分配给你的IP地址有可能会改变,但是链接是不会变!个人建议还是填CNAME类型。这里就把两种都叙述下。

  1. A 类型

使用 ping 命令获得Github分配给你的ip地址

ping yourusername.github.io

例如:

我这里获得的ip就是 151.101.77.147

添加两条记录,一条主机类型为"@",一条主机类型为"www"

  1. CNAME 类型

直接添加两条记录,同样也是一条主机类型为"@",一条主机类型为"www"

好了,这样记录就添加完成。

然后修改DNS服务器,将DNS1,DNS2分别修改为

f1g1ns1.dnspod.net
f1g1ns2.dnspod.net

域名解析就完成了,解析的域名会在10分钟甚至更长的时间内生效,请稍安勿躁。在等待的时候可先进行下面的操作。

添加CANME

如果,你的域名解析完成,这时候你在浏览器输入你的域名想看看自己的博客,然而你会发现

并不能进入自己的博客。这时候还需要进行一步操作。

blog/source目录下,新建一个文件CNAME文件,注意:文件名大写,没有后缀!

cd blog/source/
vim CNAME

内容就是你的域名,注意:不用加 www

例如,我的域名

newkami.cn

然后更新到Gitub

hexo clean
hexo g -d

如果你的域名解析正常,就可以看的你的博客啦~如果显示无法访问此网站,则是你的域名还没解析完成,请耐心等待,如果显示的是Github 404界面,则是你的CNAME或其他的问题,请仔细检查上面的步骤!

博客性能优化

作为一个强迫症患者,看着自家的网站用着http协议被浏览器标识为"不安全",简直不能再不爽了。想着我也去搞了个SSL证书,让自己的博客支持HTTPS协议。突然发现tx竟然能免费申请SSL证书!大喜!

经过4-5天漫长的等待,证书终于审核好了

然后我就急忙着去配置了,结果提示

诶?咋就这么麻烦呢?!要接入那咱就接入吧,心想着,结果,来了这么一出

哇,tx你这是在玩我吧

奈何Github仓库并不能备案,这条路也就彻底断了。在我快把百度和谷歌查烂的时候,发现了Cloudflare。

Cloudflare以向客户提供网站安全管理、性能优化及相关的技术支持为主要业务。通过基于反向代理的内容传递网络(ContentDeliveryNetwork,CDN)及分布式域名解析服务(DistributedDomainNameServer),Cloudflare可以帮助受保护站点抵御包括拒绝服务攻击(DenialofService)在内的大多数网络攻击,确保该网站长期在线,同时提升网站的性能、访问速度以改善访客体验。

以上摘自百度百科。

于是,我就着手把域名接入了Cloudflare。

  1. 注册Cloudflare

进入Cloudflare,注册一个账号

  1. 解析域名

注册完成后,填写你的域名,让Cloudflare去解析

  1. 跟改DNS服务器

然后,Cloudflare会要求你修改DNS,让你的网站的请求流至Cloudflare。进入你的域名管理,把DNS服务器修改成Cloudflare提供的DNS,当看到

你的域名就成功接入Cloudflare了。

  1. 开启https
    在上面的功能区里,选择"加密"

将"总是使用HTTPS"设为开启

至此,你的网站就成功开启了https了,进入你的网站浏览器是这样显示的

怎么样?看见有个小绿锁是不是有种安心的感觉呢?

写在后面

从开始写到现在,过了好几天了,期间因为其他的事,写写停停,总算写完了。如果这篇文章哪怕有帮到你一点点,也算有意义了。

第一次写教程,如有错误,请斧正!

参考资料

通过包管理器安装Node.js
入门 - 安装Git
Hexo文档
博客从WordPress迁移到Hexo

欢迎转载,转载请注明出处:https://newkami.cn/2017/09/13/re-build-blog/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容