SlideShare a Scribd company logo
1 of 17
Download to read offline
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

What's hot

What's hot (20)

アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
Amazon SNS+SQSによる Fanoutシナリオの話
Amazon SNS+SQSによる Fanoutシナリオの話Amazon SNS+SQSによる Fanoutシナリオの話
Amazon SNS+SQSによる Fanoutシナリオの話
 
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway 20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadog
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
今さら聞けない!Active Directoryドメインサービス入門
今さら聞けない!Active Directoryドメインサービス入門今さら聞けない!Active Directoryドメインサービス入門
今さら聞けない!Active Directoryドメインサービス入門
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct Connect
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
AWS Black Belt Techシリーズ AWS Directory Service
AWS Black Belt Techシリーズ AWS Directory ServiceAWS Black Belt Techシリーズ AWS Directory Service
AWS Black Belt Techシリーズ AWS Directory Service
 
20200818 AWS Black Belt Online Seminar AWS Shield Advanced
20200818 AWS Black Belt Online Seminar AWS Shield Advanced20200818 AWS Black Belt Online Seminar AWS Shield Advanced
20200818 AWS Black Belt Online Seminar AWS Shield Advanced
 
AWS CLIでAssumeRole
AWS CLIでAssumeRoleAWS CLIでAssumeRole
AWS CLIでAssumeRole
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 

Viewers also liked

スクリプトによるAzure管理Tips / JAZUG 2014.09.26
スクリプトによるAzure管理Tips / JAZUG 2014.09.26スクリプトによるAzure管理Tips / JAZUG 2014.09.26
スクリプトによるAzure管理Tips / JAZUG 2014.09.26
Keiji Kamebuchi
 

Viewers also liked (12)

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

Similar to AzureでLaravel動かしてみた

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

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

AzureでLaravel動かしてみた