zsx

zsx

先作为主站备份 源站:https://my.toho.red

heroku使用教程——真正的零成本搭建PHP動態博客

#前言

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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。