从壹开始的个人博客搭建

这世界上多得是自命不凡,指手画脚的人。我们所要做的,并不是跟上吐槽的潮流,而是在心中细细品味发生的一切,睁大眼睛好好看看这个世界,好好看看我们周围发生的一景一物一事,就像是袁隆平老先生深入田间地头,对作物仔细观察一样。在有足够的积累,有足够的资格对我们不满的事情指手画脚之前,要牢牢记住,生活就是做田调

基于hexo个人博客的搭建,从想法到实施,从开始到部署,从美化到第一篇文章

 Q: 为什么你会有搭建个人博客的想法?

 A:


服务器、域名选购

 准备工作:购买域名和服务器

首先域名购买不是必须的,也可以在GitHub上部署自己的个人博客,可以在跳过购买域名的操作后直接跳转到本地hexo博客框架搭建

如果已经买过了海外服务器,可以在海外服务器上直接部署,不过可能要享受高ping福利,而且在某些操作后还在有挂掉的风险。所以,建议购买国内的服务器,华北就买北京服务器,华东就买上海的服务器。别的没用过但是阿里云是真的香(主要是被案例)。

下列举主要的几家云服务器提供的学生优惠对比

阿里云—云翼计划 (轻量服务器)

  • 1核CPU
  • 2G内存
  • 5M峰值带宽
  • 40GB SSD
  • 每月流量1000G
  • 地域:北京、上海
  • 月付9.5元,半年付57元,年付114元

学生身份有效期内,服务器未到期前,学生机可按优惠价格在1-12月内续费,实例到期时间不超过学生身份有效期 

换言之可在学生身份有效期内任意续费


华为云—云创校园

  • 1核CPU
  • 1G内存
  • 1M峰值带宽
  • 40GB 系统盘
  • 地域:北京
  • 月付9元,半年付54元,年付99元
  • 1核4G版 月付18元

华为云购买时限只能选择 1,6,12个月

产品过期前,最多可按照优惠价格续费三次,且续费的时长需与首次购买时相同

*24岁以下免学生认证「二十四歳、学生です」


腾讯云—云+校园

  • 1核
  • 2G内存
  • 1M峰值带宽
  • 50GB系统盘
  • 地域: 上海、北京
  • 月付10元, 半年付60元,年付120元

腾讯云购买时限可选 1,2,3,6,12个月

有两次到活动页面按优惠价格续费的机会,机会用完则需要在活动页面抢购续费资格,否则按原价续费

加16元选购一年.cn域名使用权

其他

百度云

要抢购的,早九点开抢,广告推广非常勤快,另一个百度云应该都用过,懂的都懂

月付9元, 三月付18元,半年付74元 ???

天翼云—云创校园

月付9.9元,不支持续费

京东云—越云计划(已失效)

京东学生活动已关闭

美团云

无学生优惠或已关闭


海外服务器

VPS 数据中心 类型 价格/月 Linux Windows 支付宝
Vultr 16 非管理型 $5
Hostinger 4 both $3.95
Kamatera 13 both $4
AccuWeb Hosting 15 both $7.99
搬瓦工(bandwagon) 6 非管理型 $4.17
interserver 4 非管理型 $6
Hostwinds 3 both $4.99
ServerPoint 6 both $5
Contabo 2 both $3.99
I/O Zoom 6 both $5
Linode 11 非管理型 $5
DigitalOcean 8 非管理型 $5
SiteGround 5 全管理型 $80
DreamHost 1 全管理型 $13.75
Namecheap 1 全管理型 $14.88
Liquid Web 3 全管理型 $19.99

非管理型VPS相当于一台裸机,只提供操作系统,所有软件都需要自己装,有很高的自由度;全管理型VPS是已经安装好各种建站软件,可以在后台一键建站,但缺点也很明显:基本上也只能用来建站了。

购买海外服务器,不论是用作流量代理还是搭建个人博客,最低配的服务器也足够了,因此服务器质量,价格,是否支持微信支付宝支付才是最应该考虑的问题

数据来源于十佳评测 ,与真实数据可能略有出入 仅供参考

最后更新于 2020/04/04

Vultr 必须通过绑定信用卡或PayPal来激活以保证服务器过期的时候 vultr也能直接扣你的款来让服务器不被销毁并且在创建实例时,vultr默认不创建交换分区(Windows称之为虚拟内存),可能会在编译安装大型软件时出现内存不足,但很好解决 详见Linux创建Swap分区

与此同时,vultr是世界上数据中心最多的主机托管商,共16个,客服响应速度快,控制台面板简洁好看

最重要的是,vultr按小时计费,一小时的费用是$0.007,这意味着发现ping不通可以无成本立马换掉,而不用联系客服换ip,(换了三五个可能也还是ping不通

搬瓦工大概是中国用户数量最多的外国vps服务提供商,支持微信支付宝付款

品牌运营超过十年(品牌的力量)

缺点就是专注于技术研发不在乎前端设计,官网看起来非常的苏联

域名购买


国内国外不同商家域名购买价格大差不差

国内要备案国外不需要(其实是不能)

国外网站推荐NamesiloGodadday(俗称狗爹)

namesilo的购买可以看跳跃者的详细教程

还有一个可能的风险,国外域名被查到可能会被dns污染俗称域名被墙,使用代理之后才能解析出正确的ip,案发现场

我买的是阿里的服务器就顺便在万网上把域名买了,具体信息可以自行去官网对照调查

万网挑选合适的顶级域(TLD:top-level Domain) 对.com .cn .moe什么的没有特殊情怀的话还是挑便宜的好,推荐.top和 .pw 价格大概一年不到十块钱

域名备案


既可以在阿里直接备案,但是也要在阿里买服务器,不知道什么时候开始的规定:服务器要购买三个月以上才可以备案,流程相对傻瓜,照着走就可以,但是要各种证件照填各种资料加上审查,顺利三到四天,最迟十五天。

也可以选择上管局备案的官网自行解决,总的来说流程都差不多。因为等待的时间很漫长,可以先进行后面的操作。

域名解析

在万网购买的域名,域名控制台操作一栏有域名解析服务

点击添加记录后在弹出的界面填写相关信息

静态博客的话记录类型选A就可以

主机记录就是你想要的三级域名首先要添加上@和www(分两次),这样就可以通过www.sur18.top和sur18.top直接访问到本服务器上

解析线路留作默认

记录值就是你的服务器IP—公网IP

TTL10分钟就可以

服务器环境配置


最最开始要下载两个重要工具,XshellXftp

分别是与服务器建立连接的命令行和图形界面工具

使用方法非常简单,Xshell里点击新建会话,名称按照喜好设置,主机输入公网IP。用户身份验证里选择password登录方式,用户名默认root,密码可以在vps控制台获取。

Xftp在某些特殊场景下会用到但是命令行已经能够解决大部分的问题,具体连接方法与xshell类似

安装配置Nginx

1
yum install nginx -y

CentOs的包管理器默认是yum,如果是Debian或者别的Linux系统可以尝试apt install

在随便什么位置新建文件夹存放博客网站文件,我是在/var路径下建立了blog 的文件夹,在其下又建立了名为hexo的文件夹

1
2
3
4
cd /var
mkdir blog
cd /blog
mkdir hexo
  • 修改Nginx的配置文件
1
2
#找到Nginx的配置文件并编辑
vim /etc/nginx/nginx.conf

找到并修改下面的一段

1
2
3
4
5
6
7
8
9

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _; # 这里填上自己购买的域名 eg. sur18.top
root /root/nginx/; # 这里记录着Nginx的指向
include /etc/nginx/default.d/*.conf;
location / {
}

效果如下

1
2
server_name sur18.top;
root /var/blog/hexo;

其他维持原样,做完后重启Nginx

1
nginx -s reload

在这里有可能会报错(至少我遇到了)

报错信息如下

1
Nginx: [error] open() "/user/local/var/run/nginx.pid" failed (2: No such file or directory)

原因:

没有nginx.pid 这个文件,每当我们停止nginx时(nginx -s stop), nginx 会把 /user/local/var/run/路径下的nginx.pid文件删掉

方案一:

1
nginx

直接重启nginx应该会生成nginx.pid文件

如果方案一不可行,执行方案二:

1
2
3
$ nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

查看nginx配置文件路径后指定conf文件,然后再重启

1
2
nginx -c /usr/local/etc/nginx/nginx.conf
nginx -s reload

问题解决

参考 文章真正来源不可考,但我是从这里找到的解决方案,对原作者表示感谢

安装配置git

git是重要的版本控制工具

git的下载安装

1
yum install git

创建git账号

1
adduser git

添加用户权限

1
chmod 740 /etc/sudoers

然后编辑这个sudoers文件,找到如下内容

1
2
3
## Allow root to run any commands anywhere 
root ALL=(ALL) ALL
git ALL=(ALL) ALL#在紧挨着的下面添加这么一行表示添加名为git的用户且具有root权限

授权:

1
chmod 400 /etc/sudoers

设置密码

1
sudo passwd git

根据提示输入密码后就可以通过Windows登录服务器的git账户了

注意要替换成自己的服务器的公网IP

1
ssh git@192.168.0.1

安装git仓库

既然前面博客放在了var文件夹下,仓库就也创建在同文件夹下

1
2
3
4
5
mkdir /var/repo
chown -R git:git /var/repo #change owner
chmod -R 755 /var/repo #change mode
chown -R git:git /var/blog/hexo #前面建好的文件夹,同样的操作
chmod -R 755 /var/blog/hexo

初始化并创建具体的仓库:

1
2
cd var/repo
git init --bare hexoBlog.git #随便你命名hexoBlog还是什么blogHexo都无所谓,问题在于一定要同步

此处创建一个Git钩子,位于仓库内的hooks文件夹内:

1
vim /var/repo/hexoBlog.git/hooks/post-receive

加入两行代码,原因参见猫爪博客

1
2
#!/bin/bash
git --work-tree=var/blog/hexo --git dir=/var/repo/hexoBlog.git checkout -f

授权

1
2
chown -R git:git /var/repo/hexoBlog.git
chmod +x /var/repo/hexoBlog.git/hooks/post-receive

添加密钥对登录(optional)

添加密钥对的方法大差不差,但是要记得修改权限

1
2
chmod 600 /.ssh/authorized_keys
chmod 700 /.ssh

本地hexo博客框架搭建


这里可以看CodeSheep的视频——手把手教你从0开始搭建自己的个人博客

这里是在GitHub上部署自己的hexo博客,如果没有购买域名可以按照视频上的方法操作

下面简要介绍具体的操作

  • 下载安装node.js

node.js官网下载node.js长期支持版(LTS),然后走流程一路点是安装

安装完成后可以先查一下node的版本确定安装成功

1
2
node -v
v10.15.1

出现类似的版本号就算成功了

npm是一个包管理器,但是由于国内速度很慢,所以可以利用nom安装淘宝的镜像cnpm

1
npm install -g cnpm --registry=https://registry.npm.taobao.org

等待安装成功就可以使用了,也可以用-v来查版本号确定安装成功

  • 接下来是安装hexo
1
cnpm install -g hexo-cli

cli表示client,客户端,至此,hexo已经安装完毕

在随便什么地方建立一个名字叫blog的空文件夹,要好找

比如我直接放在D盘

1
2
***>D:
D:\> mkdir blog

mkdir 命令在Windows下也能使用

  • 博客初始化
1
hexo init

等到出现如下字样就代表博客初始化成功

1
INFO Start blogging with Hexo!

在本地看到自己的博客只需要一个指令即可

1
hexo s

或者这个命令也是一样的

1
2
3
4
5
hexo server
#看到下列文字表示成功

INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop
#代表在默认本地服务器4000端口运行,在浏览器输入localhost:4000,就可以看到你的个人博客了。必须在hexo s后才能看到,在Ctrl+C后则会消失

初始化博客会有一个叫landscape的默认主题,和一篇叫hello world的hexo介绍文章,这篇文章简明扼要地介绍了hexo的核心基础命令

helloHexo

新建一篇文章
1
2
3
4
hexo new "topic"
#或者 new简写成n也可以
hexo n "topic"
# hexo的命令都可以简写成首字母的形式
在本地运行
1
2
3
hexo server
#or
hexo s
每次更新文章,有两个命令要配套使用
1
2
3
4
hexo clean
hexo generate
#这里clean不可简化为c,因为有同首字母命令config
#而hexo generate可以写作 hexo g
部署
1
2
3
hexo deploy
#or
hexo d

前面的hexo s是在本地查看,用作每次不管是文章还是配置改动后查看效果,而部署后,文章会真正同步到服务器,在输入域名后也会看到变化

Notice hexo的所有命令,比如hexo s之类,都需要在blog的文件夹下运行

忘记了名字的大佬曾举例描述在根目录运行hexo g的现象

你在~根目录运行 hexo g当然没反应… 相当于你走在大街上吼一声:老婆饭煮好了没?

你老婆在家听不见的…

当然也可以配置环境变量在根目录也能运行hexo相关命令,可以但没必要

部署到服务器上


在本地找到博客根目录下的_config.yml文件 找到下面的内容并编辑

1
2
3
4
5
6
# Deployment
## Docs: https://hexo.io/docs/deployment.html
depoly:
type: #此处添加'git'
repo: #此处添加'ssh://git@192.168.0.1:/var/repo/hexoBlog.git'
branch: master

#注意这里也要替换成自己服务器的公网IP

默认端口是22,就不需要改动了,如果ssh端口改了这里要在IP后加上‘:端口号’例如端口号修改为1145则这里需要修改为ssh://git@192.168.0.1:1145/var/repo/hexoBlog.git

修改完毕后,默认界面看着很别扭不是吗

界面美化


关于服务器美化,首先要挑选一个好看的主题

这时就要在花里胡哨和简洁美观之间权衡利弊,既要色彩鲜明,让人感受到爆炸性的美感,又不能花里胡哨像是土味宣传单;既要简洁大方,又不能像白纸一样干净

具体可以根据自身审美在hexo官方的主题里挑选→themes

具体clone别人的主题的方法已经在codesheep的视频里讲的很清楚了,此处不再赘述

也可以考虑推荐的两个主题,一个是根据 WordPress的Akina主题三次修改后的Sakura主题,作者 mashiro 文档在这里

这个主题很漂亮,需要的功能几乎都有,几乎不需要增减代码,问题在于可定制性低,有很多东西不能改,不能挑,但所幸作者的审美没有很灾难一切的挑选都很合适

另一个是 fluid主题,另主题文档,可定制化相对较高问题在于有些想要达到的效果需要修改css文件,用户使用起来可能会比较折腾

这两种主题按照文档操作即可,文档已经很全面了

另,fluid美化日记不定时更新

如何写出第一篇文章


首先新建一篇文章

1
hexo n "从一开始的个人博客搭建"

主要一定要在blog路径下运行

文档会自动生成,用某种markdown编辑器去编辑这个文档,强烈推荐typora,可以自行去官网下载

typora — 书写即美学

写好一篇文章的关键有三

  1. 熟练使用typora,markdown语法烂熟于心

详见markdown语法介绍

  1. 配图

博客好不好看,配图占一半,可以去各大平台受冷落好看的图片,另外要注意遵循网站的版权协议

  1. front-matter

在一篇文章md文件最上方有一个以---分隔的区域用于指定某些变量

1
2
3
4
5
6
7
8
---
title: hello world
date 2020/7/25 2:26:36
categories:
- tools
tags:
- games
---

标明这篇文章的题目,日期,分类和标签,也有一些其他的参数可以填进去,比如文章配图,具体会在主题文档又详细说明

参见hexo文档有对front-matter的详细说明

一言様、あなたの心は、どんな世界ですか?

———

蜘蛛は結露の網の上に座っていた
のんびりと
涼しい風が吹いている


从壹开始的个人博客搭建
http://pafl.top/2020/07/18/从一开始的个人博客搭建/
Author
Paf
Posted on
July 18, 2020
Licensed under