在開發網站的時候,我們至少會有一個正在開發中的開發環境,即真正上線開放給使用者使用的正式環境,通常我們會使用類似 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 的關係吧!總之,一次不成功,那就試第二次就對了!

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

Heroku 是一個 PaaS 雲端服務,可以讓開發者快速在雲端上放上自己開發的服務,使用 PaaS 服務可以在開發初期省下不少資源,若目前的開發專案沒有使用到 Heroku 沒有支援的功能,使用 Heroku 是一個很好的選擇。

使用 Heroku 所需要建立的環境步驟如下:

Step 1:註冊 Heroku 帳號

Step 2:安裝 Heroku toolbelt

Step 3:測試使用 Heroku CLI 登入

$ heroku login
Enter your Heroku credentials.
Email: [email protected]
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

如果可以成功,就代表安裝已經完成

Step 4:新增 SSH Key

要 push project 到 Heroku 需要使用 SSH key,如果沒有 SSH key 的話,可以用以下指令新增一個 SSH key

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/adam/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in   /Users/adam/.ssh/id_rsa.
Your public key has been saved in /Users/adam/.ssh/id_rsa.pub.
The key fingerprint is:

Step 5:將 SSH Key 新增到 Heroku 帳戸

$ heroku keys:add
Found existing public key: /Users/adam/.ssh/id_rsa.pub
Uploading SSH public key /Users/adam/.ssh/id_rsa.pub... done

Step 6:將現有專案 deploy 到 Heroku

$ cd my-project
$ heroku create my-project
$ git push heroku master

如此就可以建立好 Heroku 環境,並且將自己的專案發佈到 Heroku 的雲端環境,對於機器不熟的人,用 Heroku 其實還蠻方便的。

Fukuball

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

Co-Founder / Head of Engineering at OurSong

Taipei, Taiwan