More Related Content
Similar to COSCUP 2016 Laravel 部署工作坊 - 部署指南 (20)
More from Shengyou Fan (20)
COSCUP 2016 Laravel 部署工作坊 - 部署指南
- 2. COSCUP 2016 - Laravel 部署⼯工作坊
⼯工作坊三階段
• 在本機端將範例應⽤用程式跑起來
- 確認學員了解運⾏行環境的條件
- 了解範例應⽤用程式的機制及程式碼
• 將可運作的應⽤用程式打包後部署
- 了解如何打包應⽤用程式
- 了解如何部署應⽤用程式⾄至對應平台
• 更新應⽤用程式後重新部署
- 了解如何更新應⽤用程式版本
- 3. COSCUP 2016 - Laravel 部署⼯工作坊
運⾏行 Laravel 的基本條件
• HTTP 伺服器 (需⽀支援 rewrite 才可使⽤用 Pretty URL)
• PHP 最低環境需求
- PHP >= 5.5.9 (5.1 以上可⽤用 PHP 7)
- OpenSSL PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
• 資料庫 (⽀支援多種資料庫系統)
- 4. COSCUP 2016 - Laravel 部署⼯工作坊
範例應⽤用程式
★ 線上版: http://todo.laravel-dojo.com/
- 5. COSCUP 2016 - Laravel 部署⼯工作坊
實作功能
• ⼀一個簡易的 ToDo 應⽤用程式
- 4 個 Route
- 1 個 Controller
- 1 個 Model (1 個 migration)
- 1 個View (1 個 master、1 個 child)
- 1 個Validation
★ 範例源始碼:
http://github.com/laravel-‐dojo/201608-‐coscup-‐sample-‐app
- 6. COSCUP 2016 - Laravel 部署⼯工作坊
建置本地端環境
Mac OS UbuntuWindows
MAMP apt-getwagon
- 7. COSCUP 2016 - Laravel 部署⼯工作坊
編輯器選擇
• Editor 型
- Visual Studio Code
- Atom
- Sublime Text 3
• IDE 型
- PhpStorm
- Eclipse
- Netbeans
- 8. COSCUP 2016 - Laravel 部署⼯工作坊
下載範例應⽤用程式
• 請先到 Laravel 道場的 Github:
• 下載範例應⽤用程式:
http://github.com/laravel-‐dojo/201608-‐coscup-‐sample-‐app
//
使⽤用 git 指令
$
git
clone
git@github.com:laravel-‐dojo/201608-‐coscup-‐
sample-‐app.git
P.S 或是直接下載 zip 檔
- 9. COSCUP 2016 - Laravel 部署⼯工作坊
安裝相依套件
• 使⽤用 Composer 指令安裝相依套件
//
先安裝相依套件
$
composer
install
-‐-‐no-‐scripts
//
產⽣生 .env、APP_KEY 並最佳化應⽤用程式
$
composer
run-‐script
post-‐root-‐package-‐install
$
composer
run-‐script
post-‐install-‐cmd
$
composer
run-‐script
post-‐create-‐project-‐cmd
- 10. COSCUP 2016 - Laravel 部署⼯工作坊
建⽴立資料庫
• 開啟 MySQL 管理介⾯面,建⽴立本地端資料庫
- 11. COSCUP 2016 - Laravel 部署⼯工作坊
設定連線資訊
//
設定 .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=host
DB_PORT=3306
DB_DATABASE=todo
DB_USERNAME=username
DB_PASSWORD=password
- 12. COSCUP 2016 - Laravel 部署⼯工作坊
Migrate 資料庫
$
php
artisan
migrate
透過
artisan
執⾏行
migrate
指
令,將資料表結構在資料庫裡重建
- 15. COSCUP 2016 - Laravel 部署⼯工作坊
Amazon Elastic Beanstalk
• 直接使⽤用 AWS 平台上現有元件 (EC2、RDS…等) 組
合⽽而成的部署服務
• 可彈性設定⾃自動擴展的⽅方式
• 結合指令列⼯工具更可以達成版本管理及⾃自動化部署
的進階功能
• 本⼯工作坊僅先利⽤用 Elastic Beanstalk 將範例應⽤用程式
部署⾄至 AWS 取得對外網址
- 16. COSCUP 2016 - Laravel 部署⼯工作坊
部署流程
• 登⼊入 AWS 管理介⾯面
• 切換⾄至 Elastic Beanstalk
• 建⽴立⼀一個新的應⽤用程式
• 修改設定
- Document Root
- 環境變數
• Migrate 資料庫
• 瀏覽⾸首⾴頁
- 17. COSCUP 2016 - Laravel 部署⼯工作坊
登⼊入 AWS Console
• 打開瀏覽器
• 登⼊入 AWS Management Console
https://aws.amazon.com/
- 18. COSCUP 2016 - Laravel 部署⼯工作坊
進⼊入 Elastic Beanstalk
• 從⼊入⼝口⾴頁選擇 Elastic Beanstalk 管理功能
- 19. COSCUP 2016 - Laravel 部署⼯工作坊
建⽴立新應⽤用程式
• 使⽤用畫⾯面右上⾓角的 Create New Application 建⽴立新應
⽤用程式
- 23. COSCUP 2016 - Laravel 部署⼯工作坊
建⽴立應⽤用程式打包檔
• 將範例應⽤用程式打包成⼀一個 zip 檔
- 36. COSCUP 2016 - Laravel 部署⼯工作坊
設定環境變數
APP_ENV=production
APP_DEBUG=true
APP_KEY={artisan
產⽣生的
key}
DB_CONNECTION=mysql
DB_HOST={RDS
的網址}
DB_PORT=3306
DB_DATABASE=ebdb
DB_USERNAME=homestead
DB_PASSWORD=secret.0821
- 39. COSCUP 2016 - Laravel 部署⼯工作坊
Azure Web App
• 微軟 Azure 平台上整合部署⽅方式,整合平台上所有
元件即可依需求彈性建⽴立環境
• 可透過 git、ftp、Dropbox…等多種⽅方式部署
• 本⼯工作坊將利⽤用 git 及圖型化管理介⾯面將範例應⽤用程
式部署⾄至 Azure 後取得對外網址
- 40. COSCUP 2016 - Laravel 部署⼯工作坊
部署流程
• 登⼊入 Azure 管理介⾯面
• 建⽴立 Web App
• 建⽴立 MySQL
• 設定 Web App
• 部署程式碼
• Migrate 資料庫
• 重啟應⽤用程式
• 瀏覽⾸首⾴頁
- 41. COSCUP 2016 - Laravel 部署⼯工作坊
• 打開瀏覽器
• 登⼊入 Azure Portal
登⼊入 Azure 管理介⾯面
https://portal.azure.com/
- 60. COSCUP 2016 - Laravel 部署⼯工作坊
設定 git 遠端並 push
//
移除舊的 remote
$
git
remote
remove
origin
//
設定 azure 為 remote
$
git
remote
add
azure
{Azure
的
git
URL}
$
git
push
azure
master
- 64. COSCUP 2016 - Laravel 部署⼯工作坊
Google Cloud Platform
• 由 Google 提供的雲端平台,以主機部份來說,可概
分兩種作法:App Engine 及 Compute Engine
• 若要將 Laravel 運⾏行在 App Engine 上,則需要做額外
的設定。雖有 Package 可以協助,但⺫⽬目前只⽀支援到
5.1
• 本⼯工作坊將直接使⽤用 Compute Engine 建置VM,並
參考 Homestead 的裝機 Script 進⾏行環境安裝。作法
較類似⾃自⾏行安裝VPS 的⽅方式。
- 65. COSCUP 2016 - Laravel 部署⼯工作坊
部署流程
• 登⼊入 GCP 管理介⾯面
• 建⽴立 Project
• 建⽴立VM
• 下載裝機 Script
• clone/安裝 應⽤用程式
• Migrate 資料庫
• 瀏覽⾸首⾴頁
- 66. COSCUP 2016 - Laravel 部署⼯工作坊
登⼊入 Google Cloud Platform
• 打開瀏覽器
• 登⼊入 Google Cloud Platform
https://cloud.google.com/
- 73. COSCUP 2016 - Laravel 部署⼯工作坊
執⾏行裝機指令
//
下載裝機
script
$
wget
https://goo.gl/5y4Bsv
-‐O
startup.sh
//
執⾏行裝機
script
$
bash
startup.sh
- 74. COSCUP 2016 - Laravel 部署⼯工作坊
設定 git 並 clone
//
產⽣生
SSH
⾦金鑰
$
ssh-‐keygen
-‐t
rsa
-‐b
4096
-‐C
"{your
email}"
//
設定到⾃自⼰己的
github
//
把
App
clone
回本機端
$
git
clone
{your
repo}
- 75. COSCUP 2016 - Laravel 部署⼯工作坊
安裝 Laravel
//
安裝
App
$
mv
{repo}
laravel
$
cd
laravel
$
composer
install
-‐-‐no-‐scripts
$
composer
run-‐script
post-‐root-‐package-‐install
$
composer
run-‐script
post-‐install-‐cmd
$
composer
run-‐script
post-‐create-‐project-‐cmd
- 76. COSCUP 2016 - Laravel 部署⼯工作坊
設定 Laravel
//
設定
.env
migrate
資料庫
//
資料庫名稱為
homestead
//
MySQL
帳密為
homestead/secret
$
vim
.env
$
php
artisan
migrate
APP_ENV=production
APP_DEBUG=true
APP_KEY={artisan
產⽣生的
key}
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret.0821
- 77. COSCUP 2016 - Laravel 部署⼯工作坊
重啟系統服務
//
重啟三個服務
$
sudo
systemctl
restart
mysql
$
sudo
systemctl
restart
nginx
$
sudo
systemctl
restart
php7.0-‐fpm
- 79. COSCUP 2016 - Laravel 部署⼯工作坊
⾃自建VPS
• 提供VPS 服務的平台:
- Linode
- DigitalOcean
• 裝機 Script 可參考:
- ⼯工作坊 GCP ⼀一段的作法
- Laravel 官⽅方 Homestead 的 Script
- DigitalOcean 的說明⽂文件