如何建造一个博客网站 (零基础向)
本文分为以下内容:
什么是博客
搭建一个博客需要的资源
安装
额外内容
提前注意
教程面向零建站基础用户,会尽量使用图形化面板。此教程内使用aapanel。
本文不会排版;插入图片会打乱B站富文本的排版,但笔者又不得不插入大量图片。
温馨提示:最好在早上操作,晚上容易折腾到凌晨。
虽说是零基础,但请各位读者不要把自己当傻子,如果有问题,可以上网查,也可以DM up主(但是请不要问up 怎么注册网站、怎么付款这类,更不要问百度上已经有一大堆答案的问题……)提前祝各位成功~
什么是博客
摘自百度百科:博客,仅音译,英文名为Blogger,为Web Log的混成词。它的正式名称为网络日记;博客上的文章通常以网页形式出现,并根据张贴时间,以倒序排列。通常具备RSS订阅功能。博客是继MSN、BBS、ICQ之后出现的第4种网络交流方式。一个典型的博客结合了文字、图像、其他博客或网站的链接及其它与主题相关的媒体,能够让读者以互动的方式留下意见,是许多博客的重要要素。大部分的博客内容以文字为主,但仍有一些博客专注在艺术、摄影、视频、音乐、播客等各种主题。
博客仍然是某种站点,但广义上来说,它可以是能用来张贴文章、艺术作品等等的一切站点。这意味着,阁下可以搭建一个纯静态站点(只相应请求,无后端服务器上的数据交互,如欲发布文章,则需要手动上传web可渲染格式的文件到服务器),也可以搭建一个动态站点(存在后端数据交互,体现为直接提交文章、留言、注册等)。
要搭建一个博客,可以走很多路线:
1. 自己编写所有前后端,自行决定页面布局与前后端功能。需要学习HTML Javascript,后端主流选择为Java Php Python。本文不会使用这种方法。
2. 使用CMS建站系统,如WordPress:
此类往往是动态(动态+静态)网页,配置项较多,且对服务器的配置要求较高。当然,对于访问量不大的博客,1H1G(1核,1G内存。对于虚拟化服务器并无物理核心与虚拟核心的区分)足矣。对于Wordpress而言,搭建完成后的博客可以直接登陆管理员,在图形化网页上进行修改。包括页面的自定义、后端行为以及发布文章等,功能极多。这些修改,包括文章,往往被储存在数据库中,如Mysql,不能被直接下载到本地。这里使用Wordpress作为一个演示。
3. 使用Markdown搭建纯静态博客,如Gitbook, Docsify:
纯静态博客中,网页只能浏览,而不能直接修改。如果需要修改,必须访问服务器,对网页文件进行修改。而发布的文章,也是储存在运行目录中的文件。这些文件往往能被直接请求并下载到本地。Gitbook只需注册帐号即可使用其在线编辑器,因此这里使用docsify作演示。
搭建博客需要的资源:SSH设备(必须)、域名(非必须)、服务器(非必须)
SSH设备方面,需要一台至少需要联网的设备,用于连接服务器,设备可以是台式机、笔电、手机等;
当然还需要一台服务器(也不一定需要),这里建议使用海外的服务器,如果使用大陆内的服务器,不仅贵,而且会有很多麻烦事。还是做好资金准备:VPS价格,笔者所能找到的,最低且需要13¥/月,且不说其配置1H512M(1核512M内存)。
域名非必须,但是如果不想要博客访问名实际看起来像是这样:http://123.123.123.123/,最好注册一个域名。仍然,不建议注册cn eu域名。
说完了废话,到实操部分:

第一大部分 搭建Wordpress博客
提前篇:
阁下必须要知道命令行界面,即CLI。这并不是一个抽象的概念,想想电影里的“黑客”敲敲打打的样子吧。在Windows下的命令行界面叫cmd,也有powershell;Linux的叫terminal,里面是bash,也有装zsh之类的。要解释这些将会引出很多内容,因此不了解的话,直接百度cmd查找相关内容,本文不再做解释。

1. 租用一台虚拟服务器(VPS)
记得准备,能用的货币。阁下可以自己寻找许多服务供应商,查看它们提供的VPS,VDS,甚至物理服务器,并对比其性能与价格,选购最优的那个。up也会在这里贴上自己常使用的两个服务器。当然,后面的教程都是使用vultr的服务做演示的。
按时计费Vultr:https://www.vultr.com/?ref=8639868
低价俄罗斯服务器Justhost:https://justhost.asia/?ref=103467
注:后面的ref=*******是推广码。顾名思义,up参与了推广计划,如果阁下使用这里的推广码注册,那么新用户将成为up的推广用户~当然,用与不用都不会对阁下造成影响,阁下若不愿意成为推广用户,可以手动删除/?ref=*****这些内容~
任选一个供应商注册即可,均使用邮箱注册,相信阁下能找到注册入口~


注册完成后当然是需要直接租用一台VPS了:
在Vultr上购买
注册后跳转到主页面(如果未跳转,直接访问https://my.vultr.com/),点击侧边栏的Billing。在Billing页,用户可以充值余额、查看余额等。可使用Alipay(支付宝)充值,最低充值为US$10

充值完成后,回到Products页面,点击Deploy Server租用服务器。接着会进入配置选择页面。

目标博客暂估不会有很多访问量,那么我们选择最便宜的Cloud Compute类型VPS,使用Regular Performance分级的处理器。系统选择CentOS,关闭自动备份。接着是很重要的地区选择!
Vultr提供非常多的地区的机房,这些机房到大陆的联通性是不同的,对移动、联通、电信三家ISP的优化也不同!在up的测试中,日本的机房对三家的连接最好(测试ip:108.61.201.151),韩国最差。
因此这里选择日本的VPS。


点击Deploy Now部署。服务器会在几分钟内完成部署,而IP和root密码将发送到阁下邮箱,记住IP和root密码!同时也可以点击Vultr网页的服务器信息查看服务器的IP和密码。

计费须知:Vultr使用小时计费,按小时收费,服务器在被销毁后则停止收费;若不销毁,将会一直收费,直到余额耗尽。
在Justhost上购买
注册后跳转到用户页面(如未跳转,直接访问https://my.justhost.asia)。点击左侧的+VPS,进入VPS配置页面。

直接下滑到VPS Builder自定义配置。左边配置VPS,右边将显示价格。仍然使用CentOS7系统,配置自选,注意除俄罗斯地区的机房价格比较低,其它地区的价格统一比俄罗斯的高,包括中国香港。建议选择俄罗斯Moscow的机房,便宜且电信CN2回程。不要看中国香港离得近,线路其实一塌糊涂,测试ip:91.149.237.213,移动网络晚高峰延迟在300ms以上。

这是up选用的配置。
长支付周期会有折扣。点击order将会引导用户支付。
部署完后IP地址和root密码将通过邮件发送。网页上可查看ip地址,但无法查看root密码!
计费须知:Justhost周期计费,可选择每月、每季、半年、一年为周期。新的周期开始时将从用户余额扣款,款项不足会终止服务。记得留意用户余额,若不够,它也会发邮件提醒的。具体余额充值,到用户页面,Payemnts-> Top Up Balance


2. 注册一个域名(非必须)
笔者在这里选择godaddy https://www.godaddy.com/zh-sg
在这个网站先注册一个帐号。
注册域名需要输入一些个人信息,但是!我从来没输入过实名信息给godaddy……
接着在主页面直接查询自己想要的域名的注册情况

注意,如果一个域名已经被别人先行注册,那么这个域名就无法再注册了

我们可以选择别的顶点,如cc cloud info org top vip xyz等等,或者直接换一个域名注册,但是最终,都是要付钱的。

选购后进入购物车结算,如果不需要这些增值服务(怎么到这里就没中文了= =),勾选Free服务

选择付费周期,然后结帐。需要注意一点,域名的付费周期越长,其单价(每年的价格)就越高

完成付款后,我们开始配置DNS。进入产品页https://account.godaddy.com/products
找到刚刚购买的域名,点击DNS

接着在DNS配置页点击Add 添加一条解析
选择A记录 名称为www 记录值为购买的服务器的IP
(为什么没有图呢——因为我没用godaddy管理DNS,原本打算用Cloudflare演示的,但是Cloudflare只能用信用卡支付,购买不便)
添加后就得到了一个指向网页服务器的域名,稍后会解释。

3.使用SSH连接到服务器:
咱现在有了服务器,现在要连接到这台服务器上去控制它。我们使用ssh进行连接。网络上有各种各样的ssh客户端,系统自带的命令行也可以作为ssh客户端,不过这里使用electerm作为客户端。
在这里下载:
Github:https://github.com/electerm/electerm/releases/tag/v1.25.20
私有云分流:https://files.illusionrealm.com/s/5Z7Ur
安装完成后打开软件。在左上点击加号,便可输入服务器连接信息,用户名为root,其余信息按照图片内的指示输入:

连接后大概是这个样子(背景图片是个性化设置,不配置是黑背景+electerm logo),这时候就开始正式安装了~

咱现在要知道这个窗口,只能用键盘来控制。咱输入的东西,叫命令,我们要用命令去控制这台服务器的动作,up会在每条命令后面用#注明它的具体作用。在允许的情况下,请尽量复制粘贴,有些命令很长,再手动输入会有可能敲错。

4. 安装aaPanel
初始化环境:
以上,在vultr租用的服务器中,应该已经包含在系统内了,但是为了保险,无论哪个服务商,都执行一次。
执行脚本时,将会询问一些安装选项,需输入y或n决定是或否
接下来就是漫长的安装环节。这步安装大概需要2~5分钟,可以去泡杯速溶咖啡,回来会看到Congratulations! Installed successfully!
那么为自己短暂地庆祝一下,阁下已经完成一小段了~能使用面板后,我们的命令行之旅也就到此为止啦~

记得查看输出信息哦。红框内的是网页面板地址,这里是https://45.32.250.235:7800/425ceb2d
解释一下,https://是连接协议,使用http2.0;45.32.250.235是ip地址,就是我们服务器的ip地址,7800是端口号,需要固定;后面的425ceb2d呢,是访问口令,用于防止面板被暴力破解。
按住ctrl,点击这串面板地址,就可以打开了(当然也可以手动复制粘贴到浏览器)
打开后输入刚刚安装中给出的用户名(username)和密码(password)就能登陆进去啦~

当然,如果安装时不幸选中了开启ssl,大概访问会这样:

这个时候只要把https的s去掉,就能正常进去了。
访问口令、用户名、密码都要记牢;如果不小心忘了,在ssh中执行
就能查询了
首次登陆面板,它会提示安装web环境,有两个选项,LNMP和LAMP,这里选择LNMP(只是因为up喜欢用nginx),顺便把mysql5.7改成mysql-mariadb10.7,然后One-click Install开始漫长的安装。在这个演示的机器配置上,需要消耗数小时的时间。


5. 部署Wordpress
安装完成后转到 App Store,搜索并安装one-click deployment

完成后点击Setting

接着选择Blog分类的Wordpress

Domain填写已经配置好的域名,若没有域名,则填写IP地址,也可以两个都填写

记下Database用户名和密码,点击Submit开始安装,接着等待安装完成。
安装完成(一定要记下来信息)

我们接着访问Access site那个网页,开始进行配置~
先选择语言,选择自己喜欢的语言~
接着,点击 现在就开始 !

填好刚刚记下来的信息,提交

继续进行配置,设置站点标题 管理员账户密码,对搜索引擎隐藏等等,这些在Wordpress的页面上有相当详细的指引,因此这里不再赘述。完成后登陆进入管理后台。
由于这部分属于“安装”,因此关于Wordpress的安装部分到此结束。
此时站点已经可以访问。地址即为在one-click安装阶段输入的domain。在这个演示中,为
并且因为添加了域名,它还可以是
而如果要编辑站点、发布新文章等,在后面加上/wp-admin/即可进入管理页面,就像这样
Wordpress中有相当完备的指引,可以跟着其中的指引慢慢摸索,如果要在这里介绍,恐怕篇幅、时间都不够。
不过仍然需要一提,安装主题。如果阁下不想修改页面,或者觉得要修改成自己喜欢的样子工作量太大,可以直接安装在线主题,Wordpress有数不尽的主题可供选择。


第二大部分 搭建Docsify博客
在此之前:
markdown有自己的语法,但是并不复杂,无论是否具备计算机基础,都能够轻松学习。在百度上有许多markdown语法教程~
事实上,docsify有它自己的中文文档:https://docsify.js.org/#/zh-cn/quickstart
比这里介绍的更加详细。
付费篇
此篇继承第一大部分 搭建Wordpress博客到第四点。
即,已经购买了VPS、域名,且已经安装aapanel和LNMP环境
点击Website页面,点击Add site新建一个站点

domain name中,如果有域名则填写域名,如果没有域名则填写IP地址。也可以两个都填写。PHP选择static,其它默认。

点击Submit创建。创建完成后点击Document Root前往网站目录

可以看到四个文件。双击index开始编写前端页面。前端使用docsify的javascript对md文件进行渲染,我们只需引入docsify的javascript即可。首先删除index内的原内容,接着添加
up在这里引入了一些插件,以让docsify变得更好用,如 字数统计、文章搜索、夜间模式切换、页面分割、Alert贴纸等。
我们接着建立几个必要文件,选择new blank file

README.md
这是进入初始页面后会显示的内容,遵循Markdown语法。
_navbar.md
这是docsify的导航栏,显示在网站的上方,遵循Markdown语法,但须使用无序列表链接。如果导航内容过多,可以写成嵌套的列表,会被渲染成下拉列表的形式。
_sidebar.md
这是docsify的侧边栏,显示在网站侧边,遵循Markdown语法,但须使用无序列表链接。这常常可以用来跳转到某篇文章。在语法上,使用四个空格(一个制表符)可实现子目录的效果。
robots.txt
这是一个限制搜索引擎抓取内容的文件。如果希望网页被抓取,可以不创建此文件;如果不希望网页被抓取(搜索引擎无法搜索到这个网页),在文件内添加内容:

写完之后记得回到Website,在config中删除对README.md的访问限制(aapanel默认有这个限制)

即把location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)的|README删除,使其变成location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE)
保存后查看效果:

免费篇
使用Github pages部署。Github是半墙状态,可用性较低。
在github注册帐号https://github.com/
创建完成后新建一个仓库https://github.com/new

创建完成后,点击 上传现有文件

然后把上面付费篇中写好的几个文件上传进去,并且新建一个叫 .nojekyll 的文件,里面没有内容。

接着我们直接访问 https://github用户名.github.io/就能打开了

或者,是吗?Github在大陆属于半墙状态,这意味着使用Github pages部署的网站也是半墙状态……

Markdown写文章
markdown写的文章当然,使用markdown语法,文件扩展名为md。但本来写文就费力了,还要记语法?别担心,markdown是有现成的编辑器的,可以让阁下像在word里面写文章一样(也有些不同),例如Typora之类的。
写完的md文件需上传到网站目录内(或github pages仓库),并在_navbar或_sidebar中添加入口~
例如写了一篇文章,文件名叫,rizhi-03-12.md,上传后,up会选择在_sidebar中添加入口
这是markdown语法中的链接,其中[]中的内容是显示的入口标题,而()中是指向文件的绝对路径。当文件就在网站运行目录下时,可以直接是文件名,也就是rizhi-03-12.md(当然在前面加个/也没什么大碍,不加也没什么)。
每一篇文章都是如此。
那么Markdown搭建的文章到此也结束。

额外篇
这里用来补充额外内容,也就是说,此文未完结。
添加SSL证书
对于github pages无需添加,github已经提供了。
SSL证书必须要有域名!
在aapanel中打开SSL证书配置页,使用Let's Encrypt,并选择最简单的文件验证,点击Apply等待签发。
签发完成

证书有效期为三个月,三个月后,aapanel会自动续签;如果aapanel未自动续签,在此页面删除证书重新签发即可。