众所周知,大部分的静态网页托管服务 (例如 vercel、netlify) 都是完全免费的,我的 mc 官网正是托管在 vercel 上的。但是有没有完全免费的动态网页托管服务 (也就是虚拟主机) 呢?[本链接][1] 便介绍了这样一种方法。但我在根据本教程搭建时,发现了一些问题:
1.heroku 在我使用时已经无法通过 github 导入项目,必须通过自己的 heroku git 搭建,本文将说明解决方案。
2. 搭建时必须使用 linux 系统,多了一步注册 GoormIDE 的操作,本文将全程使用 windows 操作。
3. 只使用一个插件时是不需要信用卡验证的,本文将消除这一误解。
话不多说,现在开始吧。
注意:本文在某些地方将会参考前文的部分内容,请不要在意。
#开始搭建
## 需要的准备
- heroku 账户,无需信用卡验证
- 运行 windows 系统的电脑
- 初中英语水平或翻译软件
- 脑子
## 注册 heroku
[点击链接][2] 以注册,需要邮箱接收验证码。
注册成功后,点击 New→Create APP 创建项目。随便填个名称然后点击 Create APP (名称不重要,反正都是套自己的域名用)。
在 Settings 内将 Buildpacks 设置为 PHP:
![Heroku 设置 1-1024x177.png][3]
在 Resources 内添加 Postgres 组件 (选择 Hobby Dev 否则会提示验证信用卡):
![QQ 截图 20220512132019.png][4]
## 部署 Typecho
[点击此处][5] 下载 Heroku-Git 并安装 (一路下一步就行,没什么要设置的),然后打开 cmd 进行以下操作:
什么?你连 git 都没有安装?那么请 [点击此处][6] 安装后继续:
heroku login #登录
git clone https://github.com/aaro-n/heroku-typecho.git #克隆仓库
cd heroku-typecho #进入仓库
del .git/ #清空.git,也可以进资源管理器自己清空
git init #git初始化
git add .
heroku git:remote -a 项目名称
git remote add upstream https://github.com/typecho/typecho.git #添加官方仓库
git fetch upstream
git checkout master
git merge upstream/master --allow-unrelated-histories #强制合并,windows系统并不会弹窗而是直接合并
del .gitignore #删除.gitignore文件,一定要执行本操作,否则有些文件无法推送
git push heroku master #推送ostg
推送完就可以直接用了吗?显然是不可能的,还需要获取数据库地址。回到 heroku,在 Resources 中点击 Postgres 组件,在此处记录数据库信息:
![QQ 截图 20220512134324.png][7]
回到 heroku 点击 Open app,然后在网页内自行安装 (如果没有弹出安装页面,假设打开的 url 链接是 abc.com,那么请将 abc.com 改为 abc.com/install.php 以开始安装)
![QQ 截图 20220512134442.png][8]
安装完毕后刷新,如果一切正常,那么您就拥有了一个属于您的个人博客,而且是理论永久免费的。
## 使用自定义域名
自带的域名太难看?没关系,heroku 支持自定义域名,而且。。。并不是免费的,需要验证信用卡 (小声 bb)
不过没关系,您一样可以通过 cloudflare workers 反代您的网站以达到自定义域名的效果,但是往往只能实现浏览,想要登录后台还得通过 heroku 的链接登录。
搭建反代:[点我查看][9]
自定义域名:[点我查看][10]
#后记
[这个是我搭建好的成品][11],目前由于主题并不支持新版而暂时无法完全展示,只能使用默认主题作为 demo。
特别感谢 www.itansuo.info 对本文提供的参考教程。
2022.5.12
加更:
heroku 提供的数据库会出现重置凭据的情况,但是实测只有在重启应用时会出现,一般无需理会。
但有时候使用 postgresql 可能会出现部分插件或主题不兼容的情况,那该怎么办呢?通过使用云 mysql 数据库可以一定程度上解决这个问题。
在一番搜索后,我发现了一个比较好用的 [免费数据库][12],虽然容量只有 5m。但是本站即使持续运营了两年,数据库也只有不到 500k 的大小,因此是完全够用的。
本教程只适合穷且喜欢折腾的用户,如果手上有点闲钱,尽量还是购买虚拟主机使用最为稳妥。当然也要注意备份,否则便会出现和本站一样数据莫名其妙丢失且无法找回的情况。
祝白嫖顺利。
2022.6.6
[1]: https://www.itansuo.info/429
[2]: https://heroku.com
[3]: https://my.toho.red/usr/uploads/2022/05/3959255973.png
[4]: https://my.toho.red/usr/uploads/2022/05/2459223332.png
[5]: https://cli-assets.heroku.com/heroku-x64.exe
[6]: https://git-scm.com/
[7]: https://my.toho.red/usr/uploads/2022/05/1251680097.png
[8]: https://my.toho.red/usr/uploads/2022/05/1243310225.png
[9]: https://blog.moej.cn/archives/339/
[10]: https://www.nbmao.com/archives/4979
[11]: https://typecho222.herokuapp.com/
[12]: https://www.freesqldatabase.com/