應用程式佈署• 把寫好的程式碼放到公開的網路主機,供使用者可以瀏覽、使用這些應用程式。這個從個人的開發機將原始碼放到網路主機的動作,稱之為佈署
• 本工作坊將示範如何將寫好的程式碼佈署至 PaaS 平台供測試、練習之用
★ 參考:http://en.wikipedia.org/wiki/Software_deployment
什麼是 PaaS?• PaaS = Platform as a Service
• 平台即服務 是一種雲端運算服務,由服務供應商提供網路、伺服器、作業系統、儲存空間等,讓使用者能將其原始碼部署至雲端。使用者不需要管理與控制雲端基礎設施,只需自行處理應用程式部署與原始碼管理。
★ 參考:http://en.wikipedia.org/wiki/Platform_as_a_service
使用 PaaS 佈署的好處• 一般而言,PaaS 平台都支援版本控制、
PHP 版本設定、多種資料庫、動態因應流量擴展等功能
• 因此,你只需要專注在程式開發即可,其他所有工作包括主機安裝、佈署設定、流量擴充等都可以由 PaaS 自動完成
什麼是 pagoda box?• 一個 PaaS 服務,註冊帳號後,就可以隨時佈署多個應用程式至該平台,並取得動態網址,供開發人員測試、Demo
• 免費額度僅能使用有限的運算能力
(200MB RAM)、10MB 資料庫、且若應用程式無人瀏覽時,反應速度會自動降低
★ 參考:https://pagodabox.com/cloud-hosting-price
產生 SSH Key• pagoda box 的遠端連線使用 SSH 連線加密,因此要先產生一組 Key 做為加密金鑰
• 打開 comder.exe 並輸入以下指令
★ SSH Key 產生教學:http://help.pagodabox.com/customer/portal/articles/202068#setup-ssh-keys-bash
$ ssh-‐keygen -‐t rsa -‐C "{請換成您的 email }"
畫面會請您輸入 passphrase (密碼) 可不輸入完成後會產生兩個檔案:C:\{家目錄}\.ssh\id_rsa (私鑰)
C:\{家目錄}\.ssh\id_rsa.pub (公鑰)
登記 SSH Key• 接著,要把自己的公錀登記在 pagoda box
的帳號內,這樣 pagoda box 才會允許我們連上主機
• 請先登入 pagoda box,然後進入帳號設定
https://dashboard.pagodabox.com/account/edit
★ SSH Key 登記教學:http://help.pagodabox.com/customer/portal/articles/202068#add-ssh-pagoda
增加 Boxfile• 請在專案資料夾內新增一個 Boxfile 檔案
• pagodabox 是透過讀取 Boxfile 了解應用程式所需要的所有元件,並依照 Boxfile 內的指令進行自動化佈署
• 請參考教學範例內的 Boxfile 進行設定
★ Boxfile 說明:http://help.pagodabox.com/customer/portal/articles/175475
設定 database.php• 由於 pagoda box 的 MySQL 資料庫是在第一次佈署時自動建立的,因此使用者帳號/
密碼等資訊,會由系統環境變數傳給
Laravel 使用
• 設定 production 的資料庫連線資訊從系統環境變數接受
設定 database.php• 請參考教學懶人包內的 app/config/
database.php 設定 production 的連線資訊
★ database 設定說明:http://help.pagodabox.com/customer/portal/articles/175426
安裝 adminer• 若要直接連上 pagoda box 的 MySQL,需要安裝額外的 ruby 工具。但其實可透過自行安裝網頁版工具來瀏覽 MySQL 內容
• 請將教學範例內的 adminer 資料夾下載後,放在 public 資料夾底下
• 請先在本機端測試使用
★ adminer 官方網站:http://www.adminer.org/
.htaccess 調整• 由於安裝了 adminer,在瀏覽器內瀏覽ad
發生網頁無限跳轉迴圈。需要將 Laravel
原生的 .htaccess 設定註解掉一行
• 請參考教學範例內的 .htaccess 進行設定
pagoda box 佈署流程
★ 參考:http://help.pagodabox.com/customer/portal/articles/174146-launching-your-first-app
SourceTree
pagoda box
web
db
client
local
commit
deploy
分析 Boxfile
create
browse
啟始一個新的 App
https://dashboard.pagodabox.com/
pagoda box 佈署指令• 將 pagoda box 儲存庫設定為本機儲存庫的遠端
• 將本機儲存庫的檔案推送 (push) 至 pagoda
box 主機
$ git remote add pagoda [email protected]:{App 名稱}.git
$ git push pagoda -‐-‐all
★ 參考:http://help.pagodabox.com/customer/portal/articles/174146#launch-your-app-on-pagoda-box
0 downtime 佈署
★ 參考:http://blog.pagodabox.com/wp-content/uploads/2012/02/deploy_hooks_diagram.png
SourceTree
pagoda boxweb 1
dblocal
commit
deploy
分析 Boxfile
create
browse
web 2
client
replace
browse
階段檢查表• 確認有 pagoda box 的帳號並可登入
• 啟動一個 pagoda box App
• 確認 SourceTree 的 remote 設定
• 確認 App 有可瀏覽的公開 URL,並可成功瀏覽