初衷
之前的自己一直是一个输入者,后来生活的变化,媳妇儿的鼓励以及更好的记录自己,从而转变为一个输出者。输出的同时顺便与君共赏,故此需要一个开放的平台。
自建平台还是第三方平台
首先第一个问题就是自建平台还是第三方平台,第三方平台适合没有时间,没有一定动手能力的小伙伴选择,可以专心写作。不用被其他杂事烦心。但是第三方平台大多都有一定的监管,特别是国内,总会遇到改文、删文、发不出去的情况出现。每个小伙伴应该懂得,自己的文字就像自己的孩子,每删减几句都会特别心疼。
其次就是选择自建平台了,自建平台需要一定动手能力,至少初期是这样的,但是现在都有成熟的博客框架(wordpress,hugo等),搭建起来应该也不是太难。而且个人觉得努力争取,克服人生中一个个不大不小的困难,这不是很有成就感的事情么,人生的快乐不过如此。自建平台然后选择国外服务器,可以规避监管,尽可能想写自己想写的(当然还是要正能量的!),然后自己的博客平台可以整成各种自己喜欢的样子,第三方则有各种各样的限制。也可以把文章先发自建平台,然后再发布到第三方平台,如果遇到需要修改的地方再稍微修改一下,但至少原文在自建平台还是有的,修改后第三方平台还是发不了,这时候可以任性的说,老子不发了!
自建平台博客选型
自己调研了很多自建博客框架,最后发现还是wordpress老牌的好用,且听我娓娓道来。
选型要求:花20%精力就能达到80%的效果。并且博客平台有一定想象拓展空间,可以更精进一步。当然使用人数要多社区活跃,解决问题也好解决。
静态博客/文档生成器
静态生成器的核心特点:速度快、安全、适合开发者、依赖 Git 部署。这些都属于在本地生成HTML文件,然后推送到网站平台进行托管,优点就是不用耗费服务器多少流量,搭建简单,而且因为都是纯静态文件展示,服务器性能要求较低,甚至不需要服务器,只需要托管到第三方平台就可以,只需要域名转发,比方说github等,而且不怕DDOS攻击,如果只是想简单的文档展示,这种就很合适,但是缺点也很明显,不能做太多定制化的东西,比方说有一个重要的东西就是没法评论,如果需要文章能评论就需要引入第三方插件,当然更丰富的定制也就不能或很难满足了。
- Hexo:特点是由Node.js 驱动,生成速度比较快(比 Jekyll 快)。社区较丰富。缺点是构建时可能遇到依赖问题(Node 版本不兼容)。配置复杂度偏高。
- Hugo:特点是Go语言开发,号称世界上最快的静态博客生成器。编译极快,几千篇文章也能秒级构建。但是自己使用场景一般都是一篇或几篇去发布编写。所以也不是已经写好很多然后整体编译发布。
- Jekyll:特点是GitHub Pages 官方支持,Ruby 开发。是老牌工具了但是生态有些老旧。
- VuePress:由Vue 驱动的静态文档生成器。前端开发者友好,支持 Vue 组件。适合做技术文档/博客混合站点。构建速度比 Hugo 慢。功能偏文档型,不如 Hexo 面向博客。
- Docsify:不生成静态文件,基于 JS 运行时渲染 Markdown。配置极简,不需要编译。即开即用,适合小型文档项目。SEO 差(因为前端渲染)。这是个硬伤呀,谁不希望自己写的文字让更多人看到呢!功能较弱,插件不多。
- Gitbook (开源版):专注电子书和文档写作。格式化好,适合文档编排。类似书籍目录的导航。Gitbook 已经不再维护开源版。
- Material for MkDocs:基于 Python MkDocs 的 Material 主题。界面美观,适合文档网站。偏向文档,不是博客。灵活性不如 Hexo/Hugo。
动态博客系统 / CMS
动态系统的特点:功能多、扩展性强、后台管理友好,但需要数据库和服务器。
- Wordpress:世界最流行的 CMS,PHP+MySQL。插件/主题数量巨大。后台管理界面功能强大。社区活跃。性能和安全问题(需要优化/防护)。因为是世界上最流行的博客平台,所以不怕贼偷就怕贼惦记,就有好多黑客研究wordpress的漏洞,但是也不用担心,也正因为有非常多的人使用,也有很多人做了wordpress的防护插件,比方说强大的Wordfence。部署维护成本高。正因为它非常强大,所以部署起来略微麻烦,但是结合这个教程可以方便的在服务器上部署一套。
- Ghost:特点是专注写作体验,Node.js 驱动。界面简洁,原生 SEO + 订阅功能。缺点是插件少,扩展性不如 WordPress。商业化气息浓厚(Ghost Pro 付费)。
- Halo:国产 Java 博客系统。作为一个Java为第一语言的程序员,一听到wordpress用php写的,什么鬼,才不要用wordpress呢,然后就找类似同款的框架,就找到了halo,后端基于Java,前端用vue,也可以用docker部署,嗯,很对胃口。也是自己熟悉的领域。但是自己尝试部署熟悉下来发现有以下问题。
- 有文章、评论、页面等一些基本的博客平台必须要有的东西。但是想要更多功能,则扩展起来很难或不能扩展。特别是我特别想要的说说的功能。
- 有一些好看的主题,但是也仅限于此了,挑了挑没有特别喜欢的,我最初想要类似微博或者QQ空间那种主题。而wordpress则有很多很多可以直接平台内傻瓜式安装的主题,以及上传文件安装的第三方主题。当然大部分也没对上胃口,最后选定了Argon这款强大的主题。
- 关于插件。上插件市场找了几个插件,准备安装,发现都需要交会员费,而不是每个买断制。简单功能插件都这样了,那以后还了得,遂放弃,而且插件市场里插件真不多,相比于wordpress来说。而且看插件更新时间也都好久了,就算是新兴博客框架,需要一定成长时间,但看这目前不太活跃,怕成长不起来呀。
- 最后关于部署。网上找了找部署资料,并不是特别多。说明还是用的人不太多。所以最后没使用。
- Solo:国内开发的轻量级 Java 博客系统。部署简单,轻量。适合个人博客。但是功能较少。社区相对小。
- Typecho:PHP 轻量级博客系统。简洁轻便,部署方便。插件和主题数量适中。缺点是社区活跃度下降。功能不如 WordPress 全面。
- z-blog:国内老牌博客系统,支持 ASP/PHP。社区历史悠久。功能比较齐全。缺点是技术老化。生态更新慢。
- emlog:PHP 开发的轻量级博客。简单易用。插件和模板也有一些。缺点是更新频率低。功能有限。
博客平台架构
写博客的工作流主要是使用Typora进行电脑编写markdown文章。如果出门在外不方便又需要及时记录的话先用手机端WPS写智能文档留存,等有时间了再粘贴到typora。typora写好之后使用m2w工具进行自动发布到wordpress平台,最后再手动复制粘贴或使用文章同步助手发布到第三方平台。
服务器选择
国内 or 国外?
根据经验,强烈推荐新手在选择VPS的时候最好选择海外的机房。理由如下:
- 免备案:国内VPS要玩互联网服务的时候需要备案,这通常会花费2周到1个月的时间;国外VPS则没有这种限制。
- 高配置:相同价格条件下,国外VPS的带宽和流量往往更大。
- 网络无限制:国外VPS的网络没有限制,Github/Docker等各种开源平台和库可以随便访问;搭建特殊服务(比如自建ChatGPT)的时候不容易被限制
- 评论、赞赏无限制:虽然没有管制,可以通过一些技术手段控制有害评论。赞赏这个功能其实形同虚设,基本上是没有人赞赏的 Σ( ° △ °|||)︴国内个人网站不能放打赏二维码(国家禁止个人网站交易)
- 与Cloudflare互动更好:由于Cloudflare并没有完全进入中国市场,国内VPS不能使用Cloudflare——一个为免费用户提供强大服务的网络服务商。另外,国外VPS与Cloudflare的边缘网络连接的延迟更低。这对于使用Cloudflare的用户来说是非常友好的。
- 支付方便:某些品牌的海外VPS也可以支付宝和微信支付,挺方便的。像国内个人网站做这些就需要一系列复杂的手续,甚至需要注册公司办理公司网站备案然后再办理经营许可证才可以。
等大家先用国外服务器完成基础知识的学习,以后对建站有更高的要求,比如极致的响应速度和SEO优化,再转战国内VPS不迟。不过,据了解,大部分使用国外VPS的小伙伴基本上是不会再回去了——和爱不爱国无关,主要是性价比太香!
因为不用备案,监管宽松,不会因为各种条条框框限制你网站访问,所以购买国外服务器,调研了阿里云/华为云/腾讯云/百度云等厂商,感觉国外服务器都挺贵的,看了Bensz的方案推荐,所以购买Faconhost厂商的服务器,我购买的这个套餐,一年才三十美元,性价比还是很高的。
3 GB KVM VPS (4th of July 2023)
2x vCPU Cores
55 GB PURE SSD RAID-10 Storage
3 GB RAM
5000GB Monthly Premium Bandwidth
1Gbps Public Network Port
Full Root Admin Access
1 Dedicated IPv4 Address
KVM / SolusVM Control Panel - Reboot, Reinstall, Manage rDNS, & much more
Available in Multiple Locations 可选机房: 所有机房
JUST $28.99/YEAR - WOW!! (续费同价)
大家购买的时候可能没有这个机型套餐了,但是服务器配置选1核2G的大概就可以了,土豪的可以选2核4G。这样服务器docker装的容器多点也毫无压力。服务器系统建议选Ubuntu,因为CentOS已经不更新维护了,所以还是Ubuntu稳妥点,当然硬要选CentOS也没问题。服务器地域的话尽量选大城市的,纽约/旧金山等。购买完成后会把IP、账号密码发送给注册的账号邮箱中去。然后直接SSH工具连接登录就可以了。
SSH工具我使用并推荐的是Xterminal,自己也使用过诸如Finalshell、Xshell、MobaXterm、PuTTY类的SSH工具,但感觉都没有Xterminal好用,Xterminal有左侧清晰的文件树,可以像window一样方便的查找目录,不用再苦恼的手敲命令查看文件了。然后底部是命令行窗口也可以手敲命令,而且有命令智能提示,再也不用担心忘记命令是啥了,上部可以呈现文档内容,实现查看编辑。查看日志、配置文件非常方便。右侧有简单的服务器监控,可以方便查看服务器CPU、内存使用、上传下载速度、硬盘使用等。
关于服务器安全,网上有很多方法比如使用非root账户登录并禁用root账户SSH登录、隐藏公网IP、安装UFW防火墙、更改默认SSH端口、禁ping等。这些我都没有使用,自己认为这些并不彻底并会对自己日常使用造成麻烦。自己选择的是SSH登录不使用密码而是密钥和Fail2ban防扫描和暴力破解这两个方法。详细可以看这篇文章如何设置。
域名注册
选择 Cloudflare 注册域名 的原因主要有以下几点:
- 零加价政策
- Cloudflare 注册域名 按成本价出售(ICANN 注册费 + 注册局费用),不像 GoDaddy、Namecheap 那样加价。
- 没有隐藏费用,也没有首年优惠后高价续费的套路。
- 透明定价 & 续费
- 注册、续费价格长期稳定,Cloudflare 承诺 永不加价。
- 例如
.com域名就是 ICANN 成本价 + 运营商固定费用,无额外利润。
- 内置 Cloudflare 生态
- 注册域名后可以直接接入 Cloudflare DNS、CDN、安全防护,一站式管理。
- 自动启用 免费 CDN、WAF、DDoS 防护,比单纯域名注册商更有优势。
- 高级 DNS 服务
- 使用 Cloudflare 自家的 Anycast DNS,解析速度快、稳定性高。
- 还可以免费享受 DNSSEC(域名系统安全扩展)防止劫持。
- 无额外推销 & 简洁管理
- 没有像 GoDaddy 那样推销邮箱、建站、隐私保护等附加服务。
- 域名隐私保护(WHOIS Privacy)免费默认开启。
因为自己选择的是不备案的路线,所以选择了国外服务器,那么也就要选择国外域名厂商注册域名。在国外域名厂商中,Cloudflare是做的还算可以的,特别是免费CDN、安全防护很香!想了解详细使用的小伙伴可以看这篇文章。
Wordpress搭建
博客使用国外服务器采用docker compose 构建,方便迁移和维护,容器目录都在一块,而且都是一些配置类文件或重要文件才会映射出来,这样重要文件的总大小就尽可能小,也方便用rclone同步到本地window上去。一举多得。详细搭建过程可以看这篇文章。
功能插件类
Wordpress的插件生态很强大,可以搭配各种各样的插件组合出吊炸天的功能。博主推荐使用的插件可以看这篇文章。
外观设置类
博主Wordpress使用的外观主题为Argon,是一款很强大的主题,博主调研了很多其他的主题,目前来看都没有Argon美观以及功能强大,关于它如何使用可以看这篇文章,里面也包含关于博客外观类的其他设置,让博客变得更好看~
工具类
- Typora:一款所见即所得的 Markdown 编辑器,支持实时预览和导出多种格式,常用于写笔记、文档或博客文章;详细使用可以看这篇文章。
- m2w:一款自动化博文发布工具,可以一键把本地写好的markdown文章发布到Wordpress上去。详细使用可以看这篇文章。
- Rclone:是一个功能强大的 命令行云存储同步工具,可以在本地与各种网盘/对象存储之间进行同步、迁移、挂载和备份。详细使用可以看这篇文章。
小结
至此,基本上把自建博客能用到的方方面面都照顾到了,以后有新的体悟和资料我也会及时更新本文章,大家在搭建过程中有什么疑问也欢迎在文章下方留言,感兴趣的点点赞和关注转发哈~
