使用 Laravel Forge 自動部署到 Linode
一、前置作業
- 在 Laravel Froge 註冊一個帳號
- 建立 Linode API key
- Forge 使用 Linode 新的 API v4
- Linode API v4 可以透過 Linode Cloud Manager 建立
- 參考 Getting Started with the Linode API 來建立 key
- 如果網站還沒有網域名字的,可以先去買一個
- 網站沒有網域名字也是可以建立,但是如果要使用 SSL,就必須要有網域名字
二、Forge 帳號的設定
- Forge 帳號連結到 Source Control Service (例如 GitHub, GitLab, Bitbucket…)
- Forge 網站上方選單,路徑 username -> My Account
- 點選左邊 Source Control 選項
- 選擇你的 Source Control 提供者,瀏覽器會引導你進行接下來的驗證動作
- 驗證完畢後,你會被導回 Forge 頁面
- Forge 網站上方選單,路徑 username -> My Account
- 新增你的 Linode API Key 到 Forge
- 在 Forge 的 My Account 頁面,選擇 Server Providers 選項,選擇 Linode Cloud
- 輸入一個 profile name,可以是你的 Linode username,或者其他可以幫助你辨別的 profile.
然後輸入你的 APIv4 key,點選 Add Credential 按鈕
- 在 Forge 的 My Account 頁面,選擇 Server Providers 選項,選擇 Linode Cloud
三、建立一個 Server
- 點選 Forge 網站左上角 logo,點選 Linode 的圖示
- 將你的 Linode 機器細節填入表單
- 填完之後點選 Create Server 送出表單
會出現一個視窗,上面有 sudo 跟 資料庫的密碼
將這兩個密碼複製並存在安全的地方
- 接下來 Forge 就會開始根據你填的 linode 設定去建構你的 linode server
新的 server 建立完成後就會出現在 Active Servers 裡面
- 如果列表中的 server 的 status 顯示 Active,可以打開瀏覽器輸入 public IP address 看看
你應該可以看到這台 server 的 PHP 設定資訊頁面
- 一切完成後,你應該也可以收到一封關於建立這個 server 的 email
上面包含這個 server 的一些細節
四、設置網站
Server 到這邊已經建立完畢,但是網站還沒設置
註:如果網站不想使用網域名字,就可以在 server 上設定預設的網站,從Forge 上關於 server 的 Dashboard 上的 Active Sites 面板來選擇預設的網站,然後跳至這裡看接下來的指引
Add a repository
新增一個新的網站
- 首先要先替你的 Domain 設定 DNS
- Create a Domain Zone and an A record 指定你的 linode 機器 ip,如果是採用 linode 的 name service ,請參考 DNS Manager.
- 如果是使用其他家的 DNS,參考他們的文件
The following support documents describe how to update DNS records at common nameserver authorities:
- 在上方的 Servers 選單,挑選你的 server,如果沒出現,重新整理瀏覽器試試看
- 接著年寫新網站的表單,填完點選 Add Site 按鈕新增
Option Description Root Domain Your website’s domain. Project Type Your project type. If you are building regular PHP, you can choose General PHP/Laravel
. Other options include Static, HTML, Symfony, and Symfony (Dev).Web Directory The directory from which public files will be served. You will need to make sure your website’s files are in this directory in your source code repository. - 上述完成後,你的網站就會出現在 Active Sites 的面板上了
五、新增 Repository
- 從 Active Sites 面板, 點選你的網站. Apps 區快就會出現:
- 選擇 Git Repository 且填好表單.
Repository 的欄位格式是source_control_username/repository_name
.
Laravel Forge 就會從這個 branch 拉下你的 code.注意
如果你沒有使用 Composer, Install Composer Dependencies 選項請留空, 否則會產生一些錯誤. - 點擊 Install Repository .
Forge 會將原始碼複製到伺服器上.
完成後,打開瀏覽器,輸入網址,就可以看到你的網站內容了 - 如果網站部屬過程中出現任何錯誤, 就會出現一個 Server Alerts .
點選資訊按鈕可以看到更多關於這個錯誤的細節. - 瀏覽你網站的URL確認一切正常,如果沒有 domain ,就使用 ip address.
六、快速部屬
當你將程式碼 push 到 repository 時,Forge 可以自動將變更部屬到伺服器上.
- 在 Apps 區塊, 點選 Enable Quick Deploy:
- 接著就可以試著對你的程式碼做一些調整,然後 push 到 repository,就可以在你的網站上看到變更了.
七、為你的 Domain Name 新增 SSL
- 瀏覽 SSL 區塊.
- 如果你已經有 SSL certificate, 點選 Install Existing Certificate.
如果沒有, 可以選擇 Let’s Encrypt 選項:備註
Let’s Encrypt 提供免費的SSL認證服務 - 如果你選擇使用 Let’s Encrypt, 確認你想使用的 domain 然後點選 Obtain Certificate.
Reference:
https://www.linode.com/docs/guides/use-laravel-forge-to-automate-web-server-creation-on-a-linode/