在開發網站的時候,我們至少會有一個正在開發中的開發環境,即真正上線開放給使用者使用的正式環境,通常我們會使用類似 git 的版本控制系統開一個 dev branch 及 ㄧ個 master branch,分別對應到開發環境及正式環境。

所以在 Heroku 上,我們也會希望開一個給使用者使用的 Heroku app(正式環境),另一個就是線上開發版的 Heroku app(開發環境),開發者可能在自己的 local 端開發完之後,將自己的開發的成果 merge 到 dev branch,我們就可以看在線上開發版的運作情況,沒問題了我們才會發佈到正式環境。

首先我們需要先 create 兩個 Heroku App,這邊我們以 Laravel 專案為例:

Step 1:新增 Heroku App

$ heroku create my-laravel-project --buildpack
// 新增正式環境 Heroku Laravel App
$ heroku create dev-my-laravel-project --buildpack
// 新增開發環境 Heroku Laravel App

Step 2:將 dev branch 專案發佈到開發環境

$ git config remote.heroku.url "[email protected]:dev-my-laravel-project.git"
$ git push -f heroku dev:master

Step 3:將 merge 好的 master branch 專案發佈到正式環境

$ git config remote.heroku.url "[email protected]:my-laravel-project.git"
$ git push heroku master

如此就可以視情況將 dev branch 發佈到 Heroku 開發環境、master branch 發佈到 Heroku 正式環境,這樣就不會讓正在開發的功能影響到獻上的使用者了。

目前最火紅的 PHP Framework 就是 Laravel 了,以往 PHP Framework 的缺點就是沒有一個熱絡的社群,Laravel 的出現漸漸改變了這樣的現象,Laravel 社群比起其他 PHP Framework 的社群熱絡多了,雖然比起 Rails、Django 及 Node.js 確實還是差了一大截,但總是好現象。

由於看好它的發展性,目前有一些 Side Project 是用 Laravel 來實作,這些 Side Project 如果沒有必要實在是不太想碰機器或者安裝環境,所以發佈到 Heroku 是最好的選擇,只要發佈到 Heroku,Heroku 就會幫忙安裝好所有需要的環境。

步驟如下:

Step 1:使用 CLI 在 Heroku 上開啟一個可以 Build Laravel 的專案

$ heroku create my-laravel-project --buildpack https://github.com/winglian/heroku-buildpack-php

Step 2:在 Laravel 的 Project 資料夾內發佈專案到 Heroku

$ git push heroku master

有時 Heroku 發佈專案會失敗,基本上發佈失敗只要再下一次指令就可能會成功,我也不知道為何有時會這樣,或許是因為是用 Laravel 的關係吧!總之,一次不成功,那就試第二次就對了!

其實還蠻簡單的,還不用管機器,真的很方便~

Fukuball

我是林志傑,網路上常用的名字是 Fukuball。我使用 PHP 及 Python,對機器學習及區塊鏈技術感到興趣。 https://www.fukuball.com

Co-Founder / Head of Engineering at OurSong

Taipei, Taiwan