最近终于想起来我这个部落格好久都没有更新维护过,所以,是时候该重振旗鼓,扬帆起航了。在今后,我除了会保持积极的内容创作外,当下也给部落格也更换了全新的技术栈和开源项目,现在全新的Bowen's Blog上线的时候,我想是时候对过程好好总结一下了。

首先映入眼帘的肯定是这套全新的前端页面,必须要感谢的是来自Jerry Wonghexo-theme-butterfly开源项目,他的这套开源前端主题广泛受博主们的喜爱和使用并拥有庞大且的友好社区环境,所以二次开发和移植的版本数不胜数,不仅只仅局限于运行在Hexo这套Blog框架上。

其次,Blog的后端也从基于PHP的Wordpress更换成了基于Java的Halo框架,同时服务器的运行环境也从传统二进制包编译安装的LNMP环境换成了纯容器化的Docker环境。

为什么我最终选择换掉了Wordpress?如果真要看社区生态的话,世界上有将近一半的网站都是由Wordpress驱动的,论社区生态的话Wordpress无人能比,但是Wordpress经过这么多年的庞大发展自身也已经过于臃肿,并且插件和前端主题的兼容性随着PHP版本升级也可以用灾难来形容,因为你不确定哪一次的Wordpress、MySQL、PHP的版本升级就会报出一大堆令人头疼的错误,并且Wordpress官方发展路线图上对最新的PHP8.3是完全没有支持。再加上PHP是一种纯解释型语言,从性能上来讲肯定不如基于编译型语言开发的项目,最后就是令人恼火的Gravatar头像服务,因为GFW的原因除了自建CDN镜像之外,墙内实在是没有太好的办法解决。

经过以上种种考虑,最终我决定换掉Wordpress,但是在选择新的CMS/Blog框架上陷入了纠结,因为最近爆火的纯静态前端Hexo框架确实很吸引人,并且可以无服务器纯部署在Github Pages服务上,然后用CNAME解析的方式通过Cloudflare CDN进行加速。但是纯静态既是优点,也是缺点,优点无非是不依赖任何环境,只需要Web服务器就可以运行,没有后端不需要考虑性能问题,但是缺点就在于所有的管理都只能通过Node.js命令来完成,甚至每次写文章都要自己在VS Code中写,写完再用Node.js来重新build一遍,最后再用git把新的静态页面pull到你的服务器或是Github上。我觉得如果每次都这么繁琐的话,很有可能会打击我创作的欲望,如果我不愿意去使用,那么所有的优点都不再是优点。

最终,我将目标锁定了国内的一个开源项目Halo,这是一款后端基于Java的开源Blog框架,虽然Java运行在虚拟机上,并且环境配置也繁琐,但近些年随着容器化应用的普及,Linux系统碎片化的问题已经得到很好的解决,以前不同系统架构不同发行版不同kernel不同的包管理器就要用不同的二进制安装包,配置运行环境需要进行大量时间编译适合自己系统平台的二进制安装包。使用容器化就可以抛开以上种种问题,直接apt install docker.io docker-compose就行,然后就可以把你需要的软件镜像从Docker Hub上pull回来,最后愉快的一键启动。

文章接近尾声,我来总结一下Bowen's Blog自2018年至今技术栈的所有发展流程吧,当年我为了避免Linux的碎片化和使用终端命令行进行复杂的环境配置,我使用Windows Server 2012 R2 Datacenter图形化操作系统,使用IIS作为Web服务器,使PHP运行在FastCGI上,配合Windows版本的MySQL Server搭建Wordpress。直到后来Windows的性能开销太大,最后更换成了Ubuntu Server 18.04 LTS配置Nginx+PHP+MySQL来运行Wordpress,后面经历了几次Ubuntu LTS发行版更新,最后在PHP8.0时代彻底放弃了Wordpress,同时也放弃了对传统Linux的运维方式,从而转投容器化的怀抱。

最后我想说的是,Bowen's Blog在这6年的时光里跌跌撞撞运维到现在属实不易,它一直伴随着我成长,鞭策我不断学习新的技术,不断成长进步。虽然中间有很大一阵空窗期没有更新和运维,但是接下来我打算不断抽时间迫使自己进行更频繁的内容创造,期间可能会有针对小白教学的技术分享,也可能只是我日常生活的感悟和分享,但还是感谢每一个来访的朋友。今后我希望通过运维Bowen's Blog在不断进步的同时,也可以分享知识帮助更多的人进步,从而使自己获得更大的满足感。

就是这样,这篇文章到处为止吧,希望我们可以在不远的未来,在Bowen's Blog中新的文章里再见。