PHP

把Laravel網站部署到免費的Heroku上

Heroku是一個老牌且穩定的網站APP Hosting服務,從創立初期提供Ruby On Rail的專案部署服務開始,到後來已經衍生出非常多樣化的APP主機部署服務以及各式各樣的雲端平台和應用,可以使用的程式語言框架也愈來愈多,對於目前市場上佔有率最高的PHP/Laravel框架,不用說,支援度也非常高。在這篇文章中,我們就來看看如何把自己的Laravel/Jetstream專案部署到Heroku上,成為網際網路上的網站。

環境準備

建立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

在完成上傳之後,即完成了第一個步驟。此時網站已經可以瀏覽了,但是在還沒有設定之前,瀏覽的結果是錯誤的訊息,也就是在畫面上會出現「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

如此,網站就順利上線了。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s