SlideShare a Scribd company logo
AzureでLaravel動かしてみた
[PHP] laravel.osaka #1 初めてのLaravel
JAZUG/Keiji Kamebuchi
@kosmosebi
Copyright© 2016, JAZUG All Rights Reserved.
Self Introduction
{
"name" : "Keiji Kamebuchi",
"corporation" : "pnop Inc.",
"mail" : "kamebuchi@pnop.co.jp",
"web" : "http://buchizo.wordpress.com/",
"twitter" : "@kosmosebi",
"award" : ["Microsoft MVP for Azure",
"Microsoft Regional Director"],
"timezone" : "-08:00 (PST)"
}
Copyright© 2016, JAZUG All Rights Reserved.
buchizo
Senior Fellow
@kosmosebi
Activities
Copyright© 2016, JAZUG All Rights Reserved.
https://azure.moe/
https://radio.azure.moe/
実は私は…
PHP / Laravel 初心者です
優しくしてください (;´Д`)
会社の同僚はPHP詳しい
でもOSSは好き
Azure チョットデキル
Azure/MicrosoftはOSS好き
Copyright© 2016, JAZUG All Rights Reserved.
Microsoft Azure?
Microsoftが提供しているクラウド
IaaS/PaaS/SaaS/MBaaS/IDaaSなど提
供中(ざっくり)
PaaSもいくつかある
(Windows上で動作する) Azure App
Service はPHPのランタイムが
標準で入ってる
• PHP 5.4 / 5.5 / 5.6 が標準で選択可能
• PHP 7 も拡張機能で簡単に追加可能
(ツール -> 拡張機能 -> 追加)
Copyright© 2016, JAZUG All Rights Reserved.
Azure App Service?
.NET Framework や PHP, Python, node.js が動くアプリケーショ
ンサーバー(PaaS)
用途によって大枠を4種類から選びます
• Web Apps / Mobile Apps / API Apps / Logic Apps
容易にスケール可能
GitやGitHubを使ったCI
FTP使ったデプロイも可
FreeプランからPremiumまで用途に応じて
選べる課金体系と性能
Zend Z-Ray使えたりもします
Copyright© 2016, JAZUG All Rights Reserved.
DBは?
Azureが提供
SQL Database (Microsoft SQL Server互換のSaaS)
DocumentDB (NoSQL)
Azure Table Storage (KVS) / Azure Blob Storage (ファイル)
3rd Party
ClearDB (MySQLを提供するSaaS)
• Azure上から作ったり操作できます
その他
SQLite (App Service上のローカルディスクに置く)
自前MySQL (IaaS上で自分で構築)
Copyright© 2016, JAZUG All Rights Reserved.
おまけ: DocumentDB
PHP用のプレーンなラッパーは作ったのですが(同僚が)
https://github.com/pnopjp/AzureDocumentDB-PHP
laravel用のドライバーなど作って活用してもらえると嬉しい
Copyright© 2016, JAZUG All Rights Reserved.
作り方
新規 -> Web + モバイル -> Web Apps
ホスト名、料金プラン(と作成先のデータセンター)、管理用
のグループを入力して作成
Copyright© 2016, JAZUG All Rights Reserved.
設定
設定 -> アプリケーション設定 -> PHP バージョンを 5.6に
Copyright© 2016, JAZUG All Rights Reserved.
設定
laravelは /public/ を参照する必要があるのでWeb Appsのルー
トの設定を変える
設定 -> アプリケーション設定 -> 仮想アプリケーションと
ディレクトリ
site¥wwwroot¥public にする
Copyright© 2016, JAZUG All Rights Reserved.
設定
拡張機能から composer をインストール
ツール -> 拡張機能 -> 追加 -> composer
追加後はWeb Appsを再起動
Copyright© 2016, JAZUG All Rights Reserved.
デプロイ
FTPを使う方法
作ったファイルをそのままアップロード
Gitなどを使う方法
リポジトリにpush
デプロイ後、Azure上でデプロイスクリプトが実行されます
• ※ 特に何もしなくてもいい…はず(後述)
Copyright© 2016, JAZUG All Rights Reserved.
Bad Know-How
Azure上にpushしたけどデプロイに失敗する
A1: composerが入ってないもしくは入れたけどちゃんと再起動して
ない
A2: オプティマイズに時間がかかりすぎてタイムアウトする
• → Laravelのスクリプトを調整してみると良いかも
• https://laracasts.com/discuss/channels/servers/deploying-as-an-azure-web-app
• app/Console フォルダに CompileCommonClasses.php を追加
• composer.json 内の post-install-cmdを空に
Copyright© 2016, JAZUG All Rights Reserved.
"post-install-cmd": [
],
CompileCommonClasses.php
<?php
namespace App¥Console¥Commands;
use Illuminate¥Foundation¥Console¥OptimizeCommand;
use Illuminate¥Support¥Composer;
class CompileCommonClasses extends OptimizeCommand
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'optimize:classes';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Optimize common classes for Laravel';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(Composer $composer)
{
parent::__construct($composer);
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$this->info('Compiling common classes');
$this->compileClasses();
}
}
Copyright© 2016, JAZUG All Rights Reserved.
Copyright© 2016, JAZUG All Rights Reserved.
まとめ
意外と素直に動くと思います
MySQLだけちょっと苦しいところがある
その他サービスとの連携含めて興味がわいたら是非触って
みてください
Copyright© 2016, JAZUG All Rights Reserved.

More Related Content

PDF
オススメの標準・準標準パッケージ20選
PDF
だいたい30分で分かるオブジェクト指向
PDF
オブジェクト指向エクササイズのススメ
PPTX
Jenkins使ってみた~Windows編~
PDF
안정적인 서비스 운영 2014.03
PDF
AWS CognitoからAuth0への移行パターン4つ
PDF
Org Topologies at Scrum Day Europe 2022, Amsterdam
PDF
Akkaで分散システム入門
オススメの標準・準標準パッケージ20選
だいたい30分で分かるオブジェクト指向
オブジェクト指向エクササイズのススメ
Jenkins使ってみた~Windows編~
안정적인 서비스 운영 2014.03
AWS CognitoからAuth0への移行パターン4つ
Org Topologies at Scrum Day Europe 2022, Amsterdam
Akkaで分散システム入門

What's hot (20)

PPTX
20160526 依存関係逆転の原則
PDF
Atadi katha-01
PPTX
若手エンジニアのためのセキュリティ講座
PDF
今さら聞けないXSS
PDF
PDF
The Shift Left Path and OWASP
PDF
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
PDF
PHPとブロックチェーンを使ったwebアプリ開発
PDF
For sale-03
PPT
Vue.js Getting Started
PPTX
凝集度と責務
PDF
インメモリーで超高速処理を実現する場合のカギ
PDF
GoによるWebアプリ開発のキホン
PDF
第3回勉強会 オブジェクト指向
PDF
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
PPT
Apache Module
PDF
マルチテナントのアプリケーション実装〜実践編〜
PDF
Grokking Simplicity探訪
PPTX
安全なWebアプリケーションの作り方2018
PPTX
Redmineカスタムフィールド表示改善
20160526 依存関係逆転の原則
Atadi katha-01
若手エンジニアのためのセキュリティ講座
今さら聞けないXSS
The Shift Left Path and OWASP
拒絕再寫無效規格,來學學實例化需求! (Agile Summit TW 2023)
PHPとブロックチェーンを使ったwebアプリ開発
For sale-03
Vue.js Getting Started
凝集度と責務
インメモリーで超高速処理を実現する場合のカギ
GoによるWebアプリ開発のキホン
第3回勉強会 オブジェクト指向
Laravel × レイヤードアーキテクチャを実践して得られた知見と反省 / Practice of Laravel with layered archi...
Apache Module
マルチテナントのアプリケーション実装〜実践編〜
Grokking Simplicity探訪
安全なWebアプリケーションの作り方2018
Redmineカスタムフィールド表示改善
Ad

Viewers also liked (12)

PDF
ゆるふわAzure Functions
PDF
VYATTA USERS MEETING Spring 2014 - JAZUG
PDF
ちょっと分かった気になるAzure概要
PDF
C#ユーザー会 //build/ まとめ(サーバー編)
PDF
Azure &lt;3 Openness
PDF
Azure How to Learn & ゆるふわ雑談Q&A
PDF
Infrastructure as code for azure
PDF
クラウドことはじめ
PDF
Azure概要とハイブリッドWebサイトとか / 2014.09.27
PDF
Azure App Service Overview LT
PDF
スクリプトによるAzure管理Tips / JAZUG 2014.09.26
PDF
Azure Functions と Serverless - 概要と企業向け Tips
ゆるふわAzure Functions
VYATTA USERS MEETING Spring 2014 - JAZUG
ちょっと分かった気になるAzure概要
C#ユーザー会 //build/ まとめ(サーバー編)
Azure &lt;3 Openness
Azure How to Learn & ゆるふわ雑談Q&A
Infrastructure as code for azure
クラウドことはじめ
Azure概要とハイブリッドWebサイトとか / 2014.09.27
Azure App Service Overview LT
スクリプトによるAzure管理Tips / JAZUG 2014.09.26
Azure Functions と Serverless - 概要と企業向け Tips
Ad

Similar to AzureでLaravel動かしてみた (20)

PDF
ヤフー発のメッセージキュー「Pulsar」のご紹介
PDF
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
PPT
Hadoop ~Yahoo! JAPANの活用について~
PDF
第104回 php勉強会@東京 Laravel
PDF
メッセージキュー「Pulsar」の紹介 @OSC_20171007
PDF
OSC2013@FUKUOKA
PDF
20150613 Azure最新Update
PDF
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
PDF
Automation with SoftLayer and Zabbix
PDF
Go (5) JAZUG 関西とゆかいな仲間たち的な
PPTX
20151024 Azureデータストア概要
PDF
いまどきのPHP開発現場 -2015年秋-
PDF
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
PDF
Drupal deployment trial on Engine Yard
PDF
ゼロからのプログラミングRails講座 Codeanywhere版
PDF
おすすめインフラ! for スタートアップ
PPTX
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
PDF
Hack On Air - Microsoft APIs
PPTX
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
PDF
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
Hadoop ~Yahoo! JAPANの活用について~
第104回 php勉強会@東京 Laravel
メッセージキュー「Pulsar」の紹介 @OSC_20171007
OSC2013@FUKUOKA
20150613 Azure最新Update
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Automation with SoftLayer and Zabbix
Go (5) JAZUG 関西とゆかいな仲間たち的な
20151024 Azureデータストア概要
いまどきのPHP開発現場 -2015年秋-
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
Drupal deployment trial on Engine Yard
ゼロからのプログラミングRails講座 Codeanywhere版
おすすめインフラ! for スタートアップ
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
Hack On Air - Microsoft APIs
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア

AzureでLaravel動かしてみた