---
# System prepended metadata

title: laravel到 heroKu (Dahis筆記)
tags: [Laravel]

---

# 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`