眾所周知,大部分的靜態網頁托管服務(例如 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/