本文参考内容:
如何做博客/企业站以及注意事项
Typecho支持Emoji表情方法

说明:此篇文章得益于王红星的指导,喜欢直接粗暴一点的朋友可以跳过前面,直接从程序的选择开始阅读。

我的博客搭建之路

说起来有点惭愧,我自己是计算机科学与技术专业出身,虽然博客系统在我眼里是很简单的系统,但是我却一直畏惧从零开始搭建一个系统的麻烦性,因为但是安装程序的运行环境就会耗掉我大量的时间,再加上我写代码、测试、上线等工作少说也得要四五天!所以我一直都在 CSDN 一类的平台写作,然而这些平台为了利益把体验做的越来越差!

还在大学时听说过 WordPress 可以搭建博客,不过总是迈不出行动的步伐,认为一旦涉及到服务器的工作就不会简单。直到我在 Twitter 发现有人推荐 Gridea,才发现搭建博客系统原来可以这么简单,主要还是免费的。

于是我借用 Gridea 和 Github Pages 搭建了一个博客系统,EryouHao 开发的这个写作软件用起来相当便捷。但是 Github Pages 在国内总是速度很慢,而且图片资源经常加载不出来,而且 Gridea 是用 Vue 技术开发的,打包成桌面软件后总会出现卡顿情况,自己写作的那个劲又逐渐褪去了。在2020 年国庆观《我和我的家乡》有感所写中也提到在知乎一不小心就违反了社区规范,索性花功夫研究如何搭建自己的博客系统,也才有了这篇简单的教程。

一个博客/企业站需要什么

可以在网络上访问的东西背后都有一套程序支撑,博客系统(企业站点)就是运行在某处的一套程序。要把一套程序运行起来,肯定需要运行程序的空间和驱动程序运行的系统,比如我们的手里的电脑就是一种运行程序的空间,你使用的系统(Windows、macOS、Linux)就是驱动程序运行的系统,下面推荐的服务器都已经把把空间和驱动给你安装好了,所以完全不用担心自己不懂如何安装。

程序运行起来了还得让外面的人看到才行,所以我们还需要一个域名(类似于www.baidu.com一样的东西),我们把这个域名绑定到服务器上,别人在浏览器输入这个域名就能看到我们的博客(程序)了。

如果希望自己的博客打开速度很快,除了选择比较好的空间外,还可以购买 CDN 服务;希望自己的文章能更好的被百度之类搜索引擎收录的话,可以购买独立 IP 主机。

程序的选择

WordPress 应该是目前全球使用的最广泛的开源程序,结构良好,功能强大,社区内容丰富。但是对于博客(企业站点)来说,WordPress 就显得比较臃肿。Typecho 是一个轻量、简洁、快速的程序,除了官方论坛,在https://typecho.me/也有很多主题和插件。虽然 Typecho 各种主题、插件没有 WordPress 丰富,但是对于搭建博客系统已经足够了。

网上也有文章对两个系统做了对比,比如这篇:个人博客平台选择 Typecho 还是 WordPress ?Typecho 是原生支持 Markdown 语法的,可能是喜欢 Markdown 写作同学的福音,具体选 Typecho 还是 WordPress 可以凭自己的感觉,两个程序之间也是可以互相迁移的。

WordPress 安装包下载:https://wordpress.org/download/(12.4M)
Typecho 安装包下载:http://typecho.org/(400K)

空间的选择

空间类型包括服务器、VPS和虚拟主机,它们的价格是逐渐减少的。对大部分人来说并不是越贵越好,比如服务器和 VPS 还需要自己懂一些运维知识才行。仅仅只是搭建博客(企业站点)的话,一个虚拟机就足够使用了,又便宜又不费心。

空间地理位置是需要重点考虑的一个因素,如果你做的是英文站点、都是国外用户,那可能一个美国主机更适合你;如果你的用户是国内的话,那大陆主机和香港主机可能更适合你。

王红星在他的文章中推荐了两个主机商,分别是衡天主机戈戈主机。我自己选的是衡天主机,有问题可以随时通过他们的客服询问或是提工单,体验很不错!偷偷告诉你,在购买前可以搜搜优惠码!阿里云也很不错,只是稍微有点贵!

域名注册

国内有腾讯云、阿里云、爱名网等域名注册商,国外有 Name、Namecheap、Godaddy、Dynadot 等域名注册商。有些域名商默认会提供域名保护功能,有的则需要购买该功能。各个域名注册商的价格也都差不多,根据自己的实际需求选一个就可以了。

我自己选的是腾讯云,它第一年域名的优惠力度比较大,比如我要注册guanngxu.com这个域名,可以看到都是有优惠的。

腾讯云:https://dnspod.cloud.tencent.com/
阿里云:https://wanwang.aliyun.com/
爱名网:https://www.22.cn/

1602081818142.png

域名解析

我们所有的准备工作都做好了,下一步就是安装程序搭建博客系统了,下面我以衡天主机安装 Typecho 为例进行一个简略的讲解,结合我下面的内容和网上的资料,应该很快就能搭建自己的博客系统了。

主机购买后就知道它的 IP 地址了,首先我们去域名注册商处选择把域名解析到我们买的服务器上面。以腾讯云为例,在「我的域名」页面点击「解析」-->「快速添加网站/邮件解析」后会弹出如下页面。

1602082787359.png

选择「网站解析」的「立即设置」后会弹出另一个页面,你只需要在这个页面把你购买的主机 IP 地址填进去就可以了。稍等几分钟直接在浏览器输入域名访问,如果浏览器出现了页面而不是报找不到服务器 IP 地址,那么域名解析就完成了。

1602082930446.png

安装 Typecho

进入到云主机管理面板后,点击「文件管理器」可以看到如下图的目录,其中public_html目录就是咱们博客程序的目录,我们把下载好的 Typecho 包上传到这个目录并解压。

1602083241838.png

需要注意的是解压后的目录是build目录,我们需要将解压后的目录移动到上一级,,保证public_html目录看到的是下图这个样子的,然后再输入域名去访问自己的博客。

1602083403843.png

如果不出意外,输入域名后出现的应该是下面的页面,点击「我准备好了,开始下一步」发现了什么?需要填写数据库信息。我们再回到衡天云主机管理面板,滑到「数据库管理」选择「新建数据库」,设置数据库名、数据库用户名、密码等,点击「创建」即可,这些信息就是安装 Typecho 需要的信息,再回到之前的页面把这些信息填进去,自己的博客系统就搭建完成了。

1602083776271.png

那么现在你就拥有了一个自己的博客系统,如果样子不太好看你可以去官方论坛或https://typecho.me/里面找自己喜欢的主题,如果有能力甚至可以自己修改或原创主题,一些插件在上面也都是可以找到的。

Typecho 官方也提供了相应的安装文档,如何使用插件、如何调整网站外观等常见问题在官方链接http://docs.typecho.org/doku.php也都已经有说明了,此处便不再作赘述!

让 Typecho 支持 Emoji 表情

21 世纪的互联网时代怎么能少了 Emoji 表情呢?由于编码问题,Typecho 默认是不支持 Emoji 表情的,所以我们只需要将编码改成支持 Emoji 表情的编码就可以了,具体一点就是把原来的utf8编码修改为utf8mb4,修改编码的方式如下:

修改数据库编码

在衡天云主机管理面板选择「phpMyAdmin」,然后选择你刚才建立的数据库,选择「操作」-->「排序规则」-->「utf8mb4_unicode_ci」-->「执行」

修改表编码

在 phpMyAdmin 面板点击「SQL」,直接运行下面的语句就可以了。要注意你所建表的前缀,我建表所填写的前缀是gx,所以我都是gx_xxxxxxxxx,默认前缀是typecho

alter table gx_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table gx_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table gx_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table gx_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table gx_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table gx_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table gx_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;

修改数据库配置文件

数据库配置文件在public_html文件夹下,文件名为config.inc.php,其中有一行的内容是'charset' => 'utf8',将它修改为'charset' => 'utf8mb4'就可以了。

看看有了小表情是不是很可爱?

1602085283565.png