建站感悟:旧岛Land
最近搭建了一个在线的博客站-旧岛Land,写一下网站搭建的感悟,以及中途遇到的问题及如何解决的。
历程
最早接触博客类型的项目网站是Hexo,Hexo是一个快速、简洁且高效的博客框架,只需要关注文档内容的编写,hexo也提供了丰富的插件和主题,帮助美化博客站。
在接触Hexo后,第一个使用的主题是Next,因为其简约,又不失单调的的风格是我很喜欢的主题,但是后来发现该主题过于单调,后面又改换了主题
Next主题之后我改换了butterfly主题,这个主题的美观和定制的程度都是远高于Next的,至少个人人为。
Hexo框架虽好,但是有一个问题,就是需要格式化电脑的时候,我就需要代码拷贝出来,否则我就丢失了源代码,无法继续更新,只能重新搭建。这也是为什么转为使用halo的原因之一(曾有一次就是忘记拷贝,丢失源代码,git仓库都是编译后的代码无法使用)
除了上面的问题,还有一个问题就是代码的托管问题,放在gitee仓库优点是访问快,缺点是无法自动构建,每次都需要手动的去gitee仓库更新(大大的差评),github仓库虽然可以不用手动构建,但是国内速度慢,而且可能都不成功。有一种折中的办法:使用docker+jenkins的自动化方式部署到服务器,虽然解决了手动构建和访问速度的问题,但是确多了一个服务器成本,最终的解决方案是:使用github作为自动托管,使用cloudflare做域名的解析,完美解决了上面三个问题。但是cloudflare每天有限制访问次数,每天是100000次,这个数值对于一个个人博客站来说,简直绰绰有余,如果这个访问量都不够,相信买一台服务器也不会亏!
上面说到,hexo源代码是在本地的,仓库是编译后代码,如果本地代码丢失,那博客也就无法更新下去,这是一个痛点问题,当然,可以使用cloudflare的编译脚本,把源代码上传到仓库,让cloudflare编译,这是一种好办法。但是butterfly主题还是不能满足个人的使用需求,于是出现了接下来的一个项目:Discuz! Q
Discuz! Q是一个社区类型的网站,也是一个开源的项目,有Discuz! Q和Discuz! X两个系列,还有一个Discuz! W的付费系列,但是,这也是我接触到一个最坑的项目。这个项目最早可以追溯到2001年,原先的团队是康盛创想公司开发维护,但是,2010年,80后创业代表戴志康将一手创立的社区平台与服务产品Discuz!(公司叫康盛创想)以6000万美元卖给了腾讯,腾讯,大家都知道,这个项目现在去看,基本在2022年2023年开始就没有再更新维护,而且bug一堆,搭建起来也不方便,特别是用在域名+https的时候,数据库莫名就崩了(可能就是我菜),后来官方就出了Discuz!W,付费搭建,服务器都省了,给钱就可以搭建,这很腾讯,没办法,多次尝试只能弃坑,但是discuzQ确实是一个不错的项目,只可惜是腾讯维护。
接下来就是我现在觉得比较完美的方案了,Halo,他是一个社区活跃,界面美观的开源项目,通过他可以搭建一个非常不错的在线博客站,区别与hexo,halo只需要在后台编写上传文档就可以编写文章了,不需要在本地留有代码,holo也提供了丰富的插件和主题,项目的更新时间截止目前是7月2日更新过,社区很活跃,相比与同级别的wordpress,我觉得是要轻量美观些的。而且也比较适合国内,wordpress是美国开发团队开发,查阅文档和交流比较困难。综合下来halo是一个不错的选择。
Halo搭建
关于halo的搭建在官网有详细的介绍,这里我做一下我的搭建思路和过程。
因为我已经有自己一套自动化的化部署方案在服务端跑,所以这个项目最好是能兼容的。
目标是:dockercompose安装,nginx代理https证书。
这个目标很简单,在官网已经提供了对应的compose文件,但是根据官方文档,会出现一些问题:
服务端dockercompose版本太低,安装会出错,高版本不兼容服务器系统,只能优化compose文件。
服务器配置太低,如果使用halo+mysql的话会有卡死的现象,只能使用h2数据库。
安装好之后,因为域名使用的是cloudflare代理,所以缓存这里要带参数,否则就会出现插件安装之后,在后台看不到这个插件的路由界面。典型的就是图库管理,现象就是出现插件样式加载失败的提示。
除了上面的三个问题,一切的安装都很顺畅,没有任何问题发生,接下来基本就是SEO优化,主图优化等内容了
总结
截止目前,Hexo和Halo两套博客都在用,个人感觉Hexo可以单做个人的笔记来搭建,而Halo可以面向更广的方向。
Hexo的搭建使用Github+cloudflare。
Halo则使用服务器搭建,docker的方式安装。
