Contenu connexe
Plus de Shengyou Fan (20)
應用程式佈署
- 5. 什麼是 PaaS?
• PaaS = Platform as a Service
• 平台即服務 是一種雲端運算服務,由服務
供應商提供網路、伺服器、作業系統、
存空間等,讓使用者能將其原始碼部署至
雲端。使用者不需要管理與控制雲端基礎
設施,只需自行處理應用程式部署與原始
碼管理。
★ 參考:http://en.wikipedia.org/wiki/Platform_as_a_service
- 6. 使用 PaaS 署的好處
• 一般而言,PaaS 平台都支援版本控制、
PHP 版本設定、多種資料庫、動態因應流
量擴展等功能
• 因此,你只需要專注在程式開發即可,其
他所有工作包括主機安裝、 署設定、流
量擴充等都可以由 PaaS 自動完成
- 8. 什麼是 pagoda box?
• 一個 PaaS 服務, 冊帳號後,就可以隨
時 署多個應用程式至該平台,並取得動
態網址,供開發人員測試、Demo
• 免費額度 能使用有限的運算能力
(200MB RAM)、10MB 資料庫、且若應用
程式無人瀏覽時,反應速度會自動降低
★ 參考:https://pagodabox.com/cloud-hosting-price
- 12. 產生 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:{家目錄}.sshid_rsa
(私鑰)
C:{家目錄}.sshid_rsa.pub
(公鑰)
- 13. 登記 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
- 15. 增加 Boxfile
• 請在專案資料夾內新增一個 Boxfile 案
• pagodabox 是透過讀取 Boxfile 了解應用程
式所需要的所有元件,並依照 Boxfile 內
的指令進行自動化 署
• 請參考教學範例內的 Boxfile 進行設定
★ Boxfile 說明:http://help.pagodabox.com/customer/portal/articles/175475
- 16. 設定 database.php
• 由於 pagoda box 的 MySQL 資料庫是在第
一次 署時自動建立的,因此使用者帳號/
密碼等資 ,會由系統環境變數傳給
Laravel 使用
• 設定 production 的資料庫連線資 從系統
環境變數接受
- 17. 設定 database.php
• 請參考教學懶人包內的 app/config/
database.php 設定 production 的連線資
★ database 設定說明:http://help.pagodabox.com/customer/portal/articles/175426
- 18. 安裝 adminer
• 若要直接連上 pagoda box 的 MySQL,需
要安裝額外的 ruby 工具。但其實可透過
自行安裝網頁版工具來瀏覽 MySQL 內容
• 請將教學範例內的 adminer 資料夾下載
後,放在 public 資料夾底下
• 請先在本機端測試使用
★ adminer 官方網站:http://www.adminer.org/
- 19. .htaccess 調整
• 由於安裝了 adminer,在瀏覽器內瀏覽ad
發生網頁無限跳轉迴圈。需要將 Laravel
原生的 .htaccess 設定 解掉一行
• 請參考教學範例內的 .htaccess 進行設定
- 21. 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
- 32. pagoda box 署指令
• 將 pagoda box 存庫設定為本機 存庫的
遠端
• 將本機 存庫的 案推送 (push) 至 pagoda
box 主機
$
git
remote
add
pagoda
git@git.pagodabox.com:{App
名稱}.git
$
git
push
pagoda
-‐-‐all
★ 參考:http://help.pagodabox.com/customer/portal/articles/174146#launch-your-app-on-pagoda-box
- 37. 0 downtime 署
★ 參考:http://blog.pagodabox.com/wp-content/uploads/2012/02/deploy_hooks_diagram.png
SourceTree
pagoda box
web 1
db
local
commit
deploy
分析 Boxfile
create
browse
web 2
client
replace
browse
- 38. 階段檢查表
• 確認有 pagoda box 的帳號並可登入
• 啟動一個 pagoda box App
• 確認 SourceTree 的 remote 設定
• 確認 App 有可瀏覽的公開 URL,並可成功
瀏覽
- 40. 工作坊總結
• 在 個工作坊裡,我們透過 12 個學習主
題,從開發環境建置與工具介紹、版本控
制、Laravel MVC 及 Blog 功能實作,以及
上線 署等。期待能從 一連串的實作
中,了解 Laravel 應用程式開發的技巧、
享受開發的樂趣!