Heroku是一個老牌且穩定的網站APP Hosting服務,從創立初期提供Ruby On Rail的專案部署服務開始,到後來已經衍生出非常多樣化的APP主機部署服務以及各式各樣的雲端平台和應用,可以使用的程式語言框架也愈來愈多,對於目前市場上佔有率最高的PHP/Laravel框架,不用說,支援度也非常高。在這篇文章中,我們就來看看如何把自己的Laravel/Jetstream專案部署到Heroku上,成為網際網路上的網站。
環境準備
- git
- heroku 帳號
- heroku CLI (https://devcenter.heroku.com/articles/heroku-cli#download-and-install)
- 一個已完成之Laravel專案
建立Heroku APP
在命令提示字元之下,執行以下指令以登入Heroku:
heroku login
這個指令會開啟瀏覽器讓我們登入Heroku帳號,在登入完畢之後,還是要回到命令提示字元下操作。接下來要利用以下指令建立一個Heroku APP:
heroku create
如果在create後面沒有加上任何的名字,則Heroku會幫我們挑選一個可用的id。我們也可以自選id,只要和別人不一樣就可以使用,如果你挑選的id有人用過了,那麼它會提示你再另外選用。建立完成之後,可以利用以下的指令檢視目前自己的帳號下所有可用的APP:
heroku list
免費的Heroku帳號只能建立最多5個 APP。 建立完成之後,請再新建一個叫做Procfile的檔案,其內容如下:
web: vendor/bin/heroku-php-apache2 public/
使用git打包並上傳到Heroku伺服器
接下來要執行以下的指令:
git init
git add .
git commit -m "my first commit"
git push heroku master
在完成上傳之後,即完成了第一個步驟。如果你的git環境不是初次設定,在上述指令最後一行的master可能會不一樣(也許是main),要依照你自己的branch名稱而修正。
此時網站已經可以瀏覽了,但是在還沒有設定之前,瀏覽的結果是錯誤的訊息,也就是在畫面上會出現「500 Server Error」的字樣。
環境變數設定
在網站上傳到Heroku之後,還需要到Heroku的Dashboard中找出這個網站App,選擇Settings的能選項,找到Config Vars,填入以下這些內容:

這些內容每一個網站都不一定會一樣,我們需要到.env檔案中去找,如下:

填寫完畢之後,基本上網站就可以順利運行了。不過,如果你的網站有使用到資料庫,那還需要進行資料庫的設定才行。
資料庫設定
資料庫在Heroku算是另外一個服務,要使用Add-on的方式去新增。Heroku本身也有提供Heroku Postgres資料庫可以免費使用,請在App的介面中利用「Configure Add-ons」連結,透過Add-on介面去找出Heroku Postgres服務,並把它加到目前的App專案中。
加入完成之後,請回到命令提示字元去輸入以下的指令:
heroku config
此時即會列出目前此App的相關設定,其中就會有DATABASE_URL,如下:

請複製DATABASE_URL的內容,前往config/database.php中,在程式碼最前面,也就是在use指佘下方輸入以下的內容:

其中parse_url()中單引號的內容,即為DATABASE_URL後的完整網址。接者大約在第19行的位址改為以下的內容:
'default' => env('DB_CONNECTION', 'pgsql'),
再以如下的指令對網站進行更新:
git add .
git commit -m "update database configuration"
git push heroku master
最後,再以如下的指令在Heroku主機上對資料庫進行migrate的作業:
heroku run php artisan migrate
如此,網站就順利上線了。
在順利把網站部署到Heroku之後,如果下次在不同的資料夾要部署新的APP,在登入Heroku之後,要先利用以下的指令檢查目前git的remote設定:
git remote -v
在執行上述的指令之後,一般來說系統就會顯示類似下面這樣的訊息:

如果你要選擇不同的上傳位址,也就是不同的APP的話,可以利用以下的指令來選擇目前Heroku上你已經建立的APP:
heroku git:remote -a nkust-simple-php-site
其中nkust-simple-php-site即為目前在Heroku上的另外一個APP名稱,執行之後再利用git remote -v檢查即可看到它的改變:

如此就可以自由地選用要上傳的APP了。Heroku免費專案提供5個APP可以使用,可以好好地用來練習。
這神奇的程式,就好像是神燈中精靈,你可許三個願望,它能輕鬆讓你實現你所有的願望,但是請你先找到神燈。努力吧!
讚讚