# laravel到 heroKu (Dahis筆記) Heroku 的計費單位與方式 單位:dynos(1 dyno = 1 小時) 計費:所有專案運行的時間總和 1000 dynos / 月(免費方案) 1️⃣ 在 Laravel 根目錄產生 Procfile,並填入以下資料 ```scss web: vendor/bin/heroku-php-apache2 public/ ``` - Procfile 的檔名? Procfile 不需要副檔名與任何前綴(像是點 .Procfile 的點),檔案名稱必定要吻合 - Procfile 的用途? 當專案被部署上 Heroku 時,Heroku 需要透過解析裡面的字串以啟動伺服器;以 Laravel 來說,它會透過 heroku-php-apache2 這個套件啟動伺服器 - 為什麼後面有 public/? Laravel 用來部署的檔案會被放入 public 資料夾中,其中的 index.php 就是網站的進入點,所以 Heroku 使用的伺服器會以 public 資料夾當作網頁的根目錄 2️⃣ 將專案上傳至 Github,並建議使用一個 production 分支作為部署用的分支(此分支內的根目錄一定要有 Procfile) 3️⃣ 在 Heroku 中,將 Heroku 專案與 Github 儲藏庫綁定 Heroku 專案名稱 → Deploy → App connected to GitHub 設定 ![](https://i.imgur.com/B0bfBbH.png) 設定完成的畫面 ![](https://i.imgur.com/URHeBAH.png) 其它部署相關選項 4️⃣ 按下手動部署(Manual deploy)區塊中的 Deploy Branch 將分支上的程式碼部署至 Heroku ![](https://i.imgur.com/YU0g7NE.png) 部署成功的畫面 5️⃣ 接著回到 Heroku 的頁面上方,按下右上角的 Open app 6️⃣ 然後迎接你的第一個錯誤:500 | Server Error 解法:在 Heroku 的環境變數中加入 APP_KEY(這個動作會在你輸入 php artisan key:gen 完成,但在 Heroku 需要手動建立!) 在右上角的 More → Run console 執行以下指令:php artisan key:generate --show ![](https://i.imgur.com/qoqkK89.png) 執行指令獲得 APP_KEY ![](https://i.imgur.com/oVLBbrX.png) 接著複製左邊的所有黃色字串 base64:+m1LhZzuf/iReQtCS+XiNC1tH9AyhfAQSRRhdldfDhs= 然後 ctrl+c 是沒有用的所以記得用右鍵複製 :) 將剛才複製的金鑰放到 Heroku 的環境變數中,Heroku 專案 → Settings → Config Vars 並在 Key / Value 的輸入框中分別輸入 APP_KEY 與剛才複製的金鑰,接著按下 Add 新增 接著重新按下剛剛的 Open app 按紐,應該會看到網站出現了! ![](https://i.imgur.com/mQRujM4.png) 在這邊新增的每一組 Key / Value,都相當於本地端的 .env 檔案中的 Key / Value 7️⃣ 重新調整 asset 的載入方式 ###### tags: `Laravel`