[PHP] 佈署Laravel 在Heroku 伺服器

因為新工作開始接觸PHP

學新東西已經是現在年紀的衝擊

繼續記錄一下。

為了免費的SSL domain 佈署在heroku 是常見的作法之一

也不用受各大雲端平台的「免費方案」限制,是一個可以長期建置的需端網站伺服器

然而這回要將Laravel 網站建在heroku上

建議在做Laravel開發的時候,先建一個「標準」的Laravel 在heroku 上再做開發

以免延申太多看不到底洞的問題!!

首先在此不透過Github上推heroku而是透過heroku 的 git 進行

也許可以先在github做一個標準乾淨的Laravel專案在推上heroku 

但因為自已試的時候環境設定可能有點問題,而無法順利

只要從heroku git 下手最快!!

 

1.下載heroku CLI 軟體,並直接下cmd(一定要先建立環境變數給heroku路徑,安裝CLI時會有這個選項,預設是勾選)

確認heroku CLI是否安裝成功

2.登入已註冊好的heroku

>heroku login

3.移動(cd)到程式碼要安裝的路徑(接下來都在這個路徑下,下指令)

4.這時需要先安裝好composer並且可以執行,建立一個標準乾淨的laravel 專案

$composer create-project laravel/laravel --prefer-dist yourProjectName

4.1 安裝一些開發上需要用的套件

$ composer require youNeedToUsePackageName

5.取得專案的base64 key,這個之後設定heroku 檔案要用,但不知道為何

$ php artisan key:generate --show

6.下載heroku-php-apache2檔案,等下要用

7.就是這裡要用,在heroku機器上需要.Procfile檔案(檔名一個字不差)放在專案根目錄上

$ echo web: heroku-php-apache2的路徑 放置index.php的資料夾名稱 > Procfile

sample:
$ echo web: vendor/bin/heroku-php-apache2 public/ > Procfile

8.建立heroku pipelines 與app

這邊筆者習慣一個專案會有多個pipelines,以切開 開發/正式,所以以下開始建立pipelines

建立一個pipelines在指定的app上(如果還沒建立app也沒關係的)

$ heroku pipelines:create -a appname

 引導提供pipeline name、上下選擇版本(dev/product...) 

8.1 建立app

$ heroku apps:create yourAppName

 8.2 把剛建的pipelines指向app

$ heroku pipelines:add 已存在的pipelinesName -a 已存在appName

9.將第5點的Base64 key 設定到config上

$ heroku config:set APP_KEY=yourBase64Key -a=yourAppName

 10.開始將此laravel專案給一個git

git init

10.1 commit project 

git commit -m "new laravel project"

10.2 push上傳到支線上

$ push heroku master

 

以上所有的作法在heroku的後台都可以完成,但唯建立一個「標準乾淨」的Project的部分下指令比較快