起步
在正式开始之前,首先需要域名和服务器,域名是很早就注册了一个,但阿里云的服务器实在贵得有点难以接受,所以搭建个人博客的想法就一直搁置下来www(
直到今年才终于有机会正式开始搭建这个网站。
服务器选择
就选了阿里云普通的 ECS 云服务器和弹性公网 IP,IP 和服务器分开买的原因只有一个——分开买要便宜一点www(
先付费 or 后付费?
实话说理智告诉我……对于个人的小网站,按量付费要划算一些,但是……按量付费总感觉心里不踏实www(
所以最后选了按带宽包年(带宽好贵 QAQ,只能先用着这个 1M 的小水管了)
备案
备案选择阿里云 ICP 自助备案服务即可,这里有一个当时踩到的坑(
众所周知,在阿里云备案需要有阿里云服务器的 ICP 备案服务码,由于我刚刚图便宜选择 IP 和服务器分开购买,我的 ECS 云服务器暂时是没有公网 IP 的,申请服务码的按钮也是不可点击状态(
解决方法倒是很简单,把 ECS 云服务器绑定到刚刚的公网 IP 上即可(话说这界面设计也太不人性化了,找了半天才找着操作按钮)
还有一件很神奇的事(((
在刚开始备案的时候,这个网站的命名本来计划是叫「吉的小 Blog」的,但是阿里云的初审人员告诉我:「根据相关规定,网站名称不能带有博客、空间或者它们的近义词」……
!!!不是,我怎么记得个人网站备案能通过的好像就只有个人博客来着???
总之最后改名(
我是周末的时候提交的备案申请,周日晚上阿里云初审就给我打了电话,周四就收到短信通知备案通过,不得不说现在办事效率还是挺快的(((
配置环境
备案过了以后就开始研究怎么把这个服务器用起来了,这时我才发现之前给自己挖了个坑……
时间倒回到那个买服务器的神志不清的晚上,依稀记得是一个选择镜像的界面
哈?选镜像?我还没想好怎么办?随便选一个吧,看这第一个还是 Alibaba 开头的,就选这个好了
然后……
连接服务器以后干嘛来着……哦对了,装个面板吧,记得之前好像看到说 1Panel 就不错来着,看界面也挺顺眼的,就你了!(毕竟总是对着终端敲命令行也太难受了
先检查下软件包更新吧!apt
?不存在;yum
?还是不存在……
这特么啥啊(((
好吧……对 RPM 系确实不熟,但更可怕的是……使用 1Panel 官方安装脚本在安装 Docker 时会提示……「未受支持的发行版」
好吧好吧,我知道可以想办法自行部署……但脱离社区支持的话想想就太可怕了。于是重新选择镜像 -> Ubuntu 22.04(
安装 1Panel
这个过程实话说乏善可陈,在经过充分测试的发行版上(我没有影射www)连个错都不报地非常顺畅就跑下来了
一路下一步,或者偶尔填下信息(比如初始密码)
很快就能看到安装成功的提示和后台访问地址,这里需要注意,在开始访问后台前需要先在 ECS 云服务器的安全组设置中放行相应端口(默认是 24227
)
PS:如果你像我一样,在 1Panel 内用反向代理把它定向到子域名的 80/443
端口,那么可以之后取消此端口的放行。
好啦我知道官方有域名绑定,但你不觉得这样要方便一点么(
哦对了有一点一定要狠狠吹一下,这个全自动的证书申请也太方便了,配置好相关访问令牌以后哪个子域名要申请证书只要点点就好了(((
(虽然很多 PaaS 也有这种功能,但是www,毕竟很长时间没用过类似的服务了)
2024/01/11 11:33:40 开始申请证书,域名 [jwyihao.top,www.jwyihao.top] 申请方式 [DNS 自动] DNS 账号 [CloudFlare] 厂商 [CloudFlare]
2024/01/11 11:33:40 [INFO] [jwyihao.top, www.jwyihao.top] acme: Obtaining bundled SAN certificate
2024/01/11 11:33:42 [INFO] [jwyihao.top] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/***
2024/01/11 11:33:42 [INFO] [www.jwyihao.top] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/***
2024/01/11 11:33:42 [INFO] [jwyihao.top] acme: Could not find solver for: tls-alpn-01
2024/01/11 11:33:42 [INFO] [jwyihao.top] acme: Could not find solver for: http-01
2024/01/11 11:33:42 [INFO] [jwyihao.top] acme: use dns-01 solver
2024/01/11 11:33:42 [INFO] [www.jwyihao.top] acme: Could not find solver for: tls-alpn-01
2024/01/11 11:33:42 [INFO] [www.jwyihao.top] acme: Could not find solver for: http-01
2024/01/11 11:33:42 [INFO] [www.jwyihao.top] acme: use dns-01 solver
2024/01/11 11:33:42 [INFO] [jwyihao.top] acme: Preparing to solve DNS-01
2024/01/11 11:33:45 [INFO] cloudflare: new record for jwyihao.top, ID ***
2024/01/11 11:33:45 [INFO] [www.jwyihao.top] acme: Preparing to solve DNS-01
2024/01/11 11:33:46 [INFO] cloudflare: new record for www.jwyihao.top, ID ***
2024/01/11 11:33:46 [INFO] [jwyihao.top] acme: Trying to solve DNS-01
2024/01/11 11:33:46 [INFO] [jwyihao.top] acme: Checking DNS record propagation using [127.0.0.53:53]
2024/01/11 11:33:51 [INFO] Wait for propagation [timeout: 1h0m0s, interval: 5s]
2024/01/11 11:33:57 [INFO] [jwyihao.top] The server validated our request
2024/01/11 11:33:57 [INFO] [www.jwyihao.top] acme: Trying to solve DNS-01
2024/01/11 11:33:57 [INFO] [www.jwyihao.top] acme: Checking DNS record propagation using [127.0.0.53:53]
2024/01/11 11:34:02 [INFO] Wait for propagation [timeout: 1h0m0s, interval: 5s]
2024/01/11 11:34:03 [INFO] [www.jwyihao.top] acme: Waiting for DNS record propagation.
2024/01/11 11:34:17 [INFO] [www.jwyihao.top] The server validated our request
2024/01/11 11:34:17 [INFO] [jwyihao.top] acme: Cleaning DNS-01 challenge
2024/01/11 11:34:18 [INFO] [www.jwyihao.top] acme: Cleaning DNS-01 challenge
2024/01/11 11:34:18 [INFO] [jwyihao.top, www.jwyihao.top] acme: Validations succeeded; requesting certificates
2024/01/11 11:34:20 [INFO] [jwyihao.top] Server responded with a certificate.
2024/01/11 11:34:20 申请 [jwyihao.top,www.jwyihao.top] 证书成功!!
安装 1Panel 应用
又是一个乏善可陈的过程,完全傻瓜式操作,姑且安装了 OpenResty
MySQL
Halo
Alist
这几个应用,实话说感觉安装的时候挺慢的www,不知道是不是错觉(
虽然装了 Alist,不过实际体验了这 1M 小水管的效果以后……感觉大概还不如继续白嫖 Northflank 的 PaaS 服务www
大概之后有机会把水管加粗一点的时候再考虑迁移吧(
配置 Halo
虽然 Halo 官网上写了不短的安装教程(
但是感谢 1Panel 让我完全没能体验到那套流程(毕竟直接点安装一路下一步就好了www,顺带一提,官网写了 1Panel 这种安装方式)
配置好域名 DNS 解析和 SSL 证书(注:这里先配置证书是因为我用了 CloudFlare 的安全防护,要强制使用 HTTPS)打开网站——就到了新鲜出炉的初始化配置页。
反正无非是设置下密码之类的没啥可说的www
顺利初始化完成之后就成功进入了 Halo 的后台页面:
但很快,兴奋着的我发现了新的问题:
这个首页——我打不开!
Halo 首页 404?
配置好后台当然要先看看首页是啥样啦,但很快我发现,不管是首页、关于页还是某个文章的详情页——统统 404!
反复尝试无果,之后注意到外部访问地址配置有问题,更改配置以后重建……还是不行
一顿搜索,发现有一个类似的问题:更新Halo后,只能登陆后台console,无法显示首页 · Issue #5174。里面提到是插件冲突导致的问题。
但很遗憾——刚装好的 Halo 哪里来的插件www(((
不过这提醒了我——去看一眼日志吧
404 NOT_FOUND "No primary menu found"
没有主菜单?
……
去新建了个主菜单……然后正常了……
PS:在写这篇文章的时候,我发现 GitHub Issue 中有其他人遇到了类似的问题,原因被认为是「未进行初始化」
没有初始化的时候无法访问首页,这是因为数据不完整导致模板渲染异常。我们会在 2.5.2 支持在未初始化时自动跳转到初始化页面,从而解决此问题。
此问题已经在 2.5.2 优化,目前支持在未初始化时自动跳转到初始化页面。
……但我现在使用的 Halo 版本分明是 2.11.3,我也清楚地记得……在刚打开网站的时候是有进行初始化这一步骤的。
这样推测的话,大概是初始化中间的一些步骤没能完成?
好吧。这……大概也很难得知最后的实际原因了www(
公安联网备案
本来其实我已经以为一切尘埃落定……直到翻设置的时候想起来:「我好像还得把 ICP 备案号填上来着」,然后……
等等……这特么为毛有两个空啊???公安联网备案号是什么鬼???
吓得我一通搜索:
依据 《计算机信息网络国际联网安全保护管理办法》相关规定,各网站在工信部进行ICP备案成功后,如网站为中国内地提供服务(在中国内地可访问该网站),仍需在网站开通之日起30日内登录全国互联网安全管理服务平台提交公安联网备案申请。
等等?30日内?看完以后更是吓了一跳,幸亏看见了www……
总之……一通操作猛如虎是把这玩意填上了www(
结语
总之今天算是玩了一整天,就先到这里好了~(∠・ω< )⌒★