SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Vagrant で
PHP 開発環境を作る
2013/10/26 shin1x1
Innovation EGG
ハンズオン準備

USBメモリから
ファイルコピー
(c) 2013 Masashi Shinbara @shin1x1
Agenda
• Vagrant とは
• ハンズオン
• ポイント

(c) 2013 Masashi Shinbara @shin1x1
PHP開発環境
• PHPを直接インストール

(ソース, MacPorts, Homebrew etc)

• XAMMP / MAMP
• Vagrant

(c) 2013 Masashi Shinbara @shin1x1
Vagrant?

(c) 2013 Masashi Shinbara @shin1x1
Vagrant
• 仮想環境をコマンドで操作
• 構築手順をコードで定義
• OSS(MITライセンス)
• VirtualBox との組み合わせ
(c) 2013 Masashi Shinbara @shin1x1
Vagrantなら
• プロジェクト毎に独立した環境を構築
• 他人と全く同じ環境を共有
• ホストPCとは分離された環境を構築

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 動作イメージ

Vagrant

仮想環境(VirutalBox)
[ホスト] 開発用PC

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 動作イメージ

仮想マシン起動

Vagrant

仮想環境(VirutalBox)
[ホスト] 開発用PC

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 動作イメージ

[ゲスト] 仮想マシン

Vagrant

仮想環境(VirutalBox)
[ホスト] 開発用PC

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 動作イメージ

プロビジョン
[ゲスト] 仮想マシン

Vagrant

仮想環境(VirutalBox)
[ホスト] 開発用PC

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 動作イメージ
Apache
PHP
MySQL / PostgreSQL

[ゲスト] 仮想マシン

Vagrant

仮想環境(VirutalBox)
[ホスト] 開発用PC

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 動作イメージ

仮想マシン破棄
[ゲスト] 仮想マシン

Vagrant

仮想環境(VirutalBox)
[ホスト] 開発用PC

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 動作イメージ

Vagrant

仮想環境(VirutalBox)
[ホスト] 開発用PC

(c) 2013 Masashi Shinbara @shin1x1
Vagrantで作るPHP開発環境

http://www.slideshare.net/shin1x1/xampp-mamp-vagrant-php

(c) 2013 Masashi Shinbara @shin1x1
Vagrant 覚えておきたい用語
•Boxファイル

=> 仮想マシンイメージファイル

•Vagrantfile

=> 仮想マシン構築設定

•vagrantコマンド

=> 全ての操作はこのコマンドで

(c) 2013 Masashi Shinbara @shin1x1
ハンズオン

(c) 2013 Masashi Shinbara @shin1x1
流れ
1. USBメモリから必要なファイルコピー
2. インストール、仮想マシン起動

(手順は、Gist を参照)
3. 上手く動いたら tweet (#phpkansai)

(c) 2013 Masashi Shinbara @shin1x1
手順資料

https://gist.github.com/shin1x1/7114143

#phpkansai

(c) 2013 Masashi Shinbara @shin1x1
vagrant 主なコマンド
• 仮想サーバ起動
$ vagrant up

• 仮想サーバへ SSH ログイン
$ vagrant ssh

• 仮想サーバ停止
$ vagrant halt

• 仮想サーバ停止+破棄
$ vagrant destroy
(c) 2013 Masashi Shinbara @shin1x1
ポイント

(c) 2013 Masashi Shinbara @shin1x1
Vagrantfile

•構築する仮想マシンの内容を記述
•Ruby
•分かる人が書けば良い

(c) 2013 Masashi Shinbara @shin1x1
synced_folder
•ホストPCのディレクトリと

仮想サーバのディレクトリを同期

•開発はホストPCで、

実行は仮想サーバで

•PhpStormやEclipseで開発可能
(c) 2013 Masashi Shinbara @shin1x1
synced_folder
$ ls /path/to/doctoot!
index.php sample.php

ホストPC

$ ls /share/doctoot!
index.php sample.php

仮想マシン
(c) 2013 Masashi Shinbara @shin1x1
synced_folder
PHPコード変更
<?php!
$foo = Foo::foo();

ホストPC
自動で同期
<?php!
$foo = Foo::foo();

仮想マシン
(c) 2013 Masashi Shinbara @shin1x1
プロジェクトへの適用

• プロジェクトリポジトリへ追加
• プロジェクト毎に作る
• 作業が終わったら、仮想マシンは停止

(c) 2013 Masashi Shinbara @shin1x1
参考1

http://docs.vagrantup.com/v2/
(c) 2013 Masashi Shinbara @shin1x1
参考2

http://www.amazon.co.jp/dp/1449335837
(c) 2013 Masashi Shinbara @shin1x1
参考3

http://www.amazon.co.jp/dp/B00F418SQ8
(c) 2013 Masashi Shinbara @shin1x1
@shin1x1

(c) 2013 Masashi Shinbara @shin1x1
One more thing

(c) 2013 Masashi Shinbara @shin1x1
黒い画面はいや!

(c) 2013 Masashi Shinbara @shin1x1
VagrantX
Mac OS X 用
GUIアプリ
絶賛開発中
(近日公開予定)

(c) 2013 Masashi Shinbara @shin1x1

Más contenido relacionado

La actualidad más candente

Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えた
Naruto TAKAHASHI
 
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
Masahiro Sano
 
VimとRubyのアツい関係
VimとRubyのアツい関係VimとRubyのアツい関係
VimとRubyのアツい関係
Misao X
 
開発合宿 Hello world
開発合宿 Hello world開発合宿 Hello world
開発合宿 Hello world
Yohei Sugasawa
 
Transnet.+ lunch mt #1
Transnet.+ lunch mt #1Transnet.+ lunch mt #1
Transnet.+ lunch mt #1
Ryota Tomomura
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
Naruto TAKAHASHI
 

La actualidad más candente (20)

My dev env
My dev envMy dev env
My dev env
 
Landoを利用したdrupal開発環境構築
Landoを利用したdrupal開発環境構築Landoを利用したdrupal開発環境構築
Landoを利用したdrupal開発環境構築
 
Ruby東京プレゼン 資料
Ruby東京プレゼン 資料Ruby東京プレゼン 資料
Ruby東京プレゼン 資料
 
Meteorというフレームワーク
MeteorというフレームワークMeteorというフレームワーク
Meteorというフレームワーク
 
concrete5とAWSのほどよい関係
concrete5とAWSのほどよい関係concrete5とAWSのほどよい関係
concrete5とAWSのほどよい関係
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えた
 
NuxtでChrome拡張作ってみた
NuxtでChrome拡張作ってみたNuxtでChrome拡張作ってみた
NuxtでChrome拡張作ってみた
 
うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?うわ…私のEmacs力、低すぎ...?
うわ…私のEmacs力、低すぎ...?
 
Cpi mega mix
Cpi mega mixCpi mega mix
Cpi mega mix
 
VimとRubyのアツい関係
VimとRubyのアツい関係VimとRubyのアツい関係
VimとRubyのアツい関係
 
開発合宿 Hello world
開発合宿 Hello world開発合宿 Hello world
開発合宿 Hello world
 
Nuxt+TypeScript+Class構文のはなし
Nuxt+TypeScript+Class構文のはなしNuxt+TypeScript+Class構文のはなし
Nuxt+TypeScript+Class構文のはなし
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
究極のディストリビューションUbuntu
究極のディストリビューションUbuntu究極のディストリビューションUbuntu
究極のディストリビューションUbuntu
 
Fluentdで本番環境を再現
Fluentdで本番環境を再現Fluentdで本番環境を再現
Fluentdで本番環境を再現
 
意識低くMeteor紹介
意識低くMeteor紹介意識低くMeteor紹介
意識低くMeteor紹介
 
Skywayのビデオチャットを録画しよう。そう、ブラウザでね
Skywayのビデオチャットを録画しよう。そう、ブラウザでねSkywayのビデオチャットを録画しよう。そう、ブラウザでね
Skywayのビデオチャットを録画しよう。そう、ブラウザでね
 
Vagrantのすすめ
VagrantのすすめVagrantのすすめ
Vagrantのすすめ
 
Transnet.+ lunch mt #1
Transnet.+ lunch mt #1Transnet.+ lunch mt #1
Transnet.+ lunch mt #1
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 

Destacado (9)

PHPerがGAEで作ってみた
PHPerがGAEで作ってみたPHPerがGAEで作ってみた
PHPerがGAEで作ってみた
 
PHP12年生の開発環境
PHP12年生の開発環境PHP12年生の開発環境
PHP12年生の開発環境
 
Kansai PHP Users Group 2012年活動報告
Kansai PHP Users Group 2012年活動報告 Kansai PHP Users Group 2012年活動報告
Kansai PHP Users Group 2012年活動報告
 
Webシステムとちょっと便利なツール
Webシステムとちょっと便利なツールWebシステムとちょっと便利なツール
Webシステムとちょっと便利なツール
 
いまどきのPHP
いまどきのPHPいまどきのPHP
いまどきのPHP
 
Vagrant を Web開発環境に使う
Vagrant を Web開発環境に使うVagrant を Web開発環境に使う
Vagrant を Web開発環境に使う
 
日本語消えたスライド
日本語消えたスライド日本語消えたスライド
日本語消えたスライド
 
PHP 5.5 Zend OPcache
PHP 5.5 Zend OPcachePHP 5.5 Zend OPcache
PHP 5.5 Zend OPcache
 
Composer 再入門
Composer 再入門Composer 再入門
Composer 再入門
 

Similar a Vagrant で PHP 開発環境を作る ハンズオン

Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーションAzure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
Masashi Shinbara
 
VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話
Daijiro Abe
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
Atsushi Tadokoro
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
samemoon
 

Similar a Vagrant で PHP 開発環境を作る ハンズオン (20)

Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]
 
Vagrant体験入門
Vagrant体験入門Vagrant体験入門
Vagrant体験入門
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
開発現場で活用するVagrant
開発現場で活用するVagrant開発現場で活用するVagrant
開発現場で活用するVagrant
 
Vagrantのひみつ
VagrantのひみつVagrantのひみつ
Vagrantのひみつ
 
コンテナで作る開発環境 (20161104 CodeIgniter Night)
コンテナで作る開発環境 (20161104 CodeIgniter Night)コンテナで作る開発環境 (20161104 CodeIgniter Night)
コンテナで作る開発環境 (20161104 CodeIgniter Night)
 
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
 
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーションAzure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
 
Vagrant入門以前
Vagrant入門以前Vagrant入門以前
Vagrant入門以前
 
コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響コンテナ技術と普及がシステム・インテグレータに与える影響
コンテナ技術と普及がシステム・インテグレータに与える影響
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
 
VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話
 
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
BNN CAMP vol.3  インタラクションデザインの現在―プログラミング初心者のためのopenFrameworks入門 1
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
Heroku で作る
スケーラブルな 
PHP アプリケーション
Heroku で作る
スケーラブルな 
PHP アプリケーションHeroku で作る
スケーラブルな 
PHP アプリケーション
Heroku で作る
スケーラブルな 
PHP アプリケーション
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
 
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
マルチクラウド環境でモビンギはどのようにコンテナを動かしているかマルチクラウド環境でモビンギはどのようにコンテナを動かしているか
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
 
20150317 firefox os勉強会
20150317 firefox os勉強会20150317 firefox os勉強会
20150317 firefox os勉強会
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
 

Más de Masashi Shinbara

レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
 
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
 
How to learn Laravel5 application from Authentication
How to learn Laravel5 application from AuthenticationHow to learn Laravel5 application from Authentication
How to learn Laravel5 application from Authentication
Masashi Shinbara
 
10分で分かる最近のCakePHP
10分で分かる最近のCakePHP10分で分かる最近のCakePHP
10分で分かる最近のCakePHP
Masashi Shinbara
 

Más de Masashi Shinbara (16)

Twilio入門 -Web アプリ編-
Twilio入門 -Web アプリ編-Twilio入門 -Web アプリ編-
Twilio入門 -Web アプリ編-
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
 
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
 
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
 
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
 
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
 
How to learn Laravel5 application from Authentication
How to learn Laravel5 application from AuthenticationHow to learn Laravel5 application from Authentication
How to learn Laravel5 application from Authentication
 
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
 
わかってるフレームワーク Laravel
わかってるフレームワーク Laravelわかってるフレームワーク Laravel
わかってるフレームワーク Laravel
 
ビルドサーバで使うDocker
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
 
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
 
Laravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログインLaravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログイン
 
キャラ立ちしたエンジニアになる!
キャラ立ちしたエンジニアになる!キャラ立ちしたエンジニアになる!
キャラ立ちしたエンジニアになる!
 
Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみようTwilio API を PHP で触ってみよう
Twilio API を PHP で触ってみよう
 
サーバの防災訓練
サーバの防災訓練サーバの防災訓練
サーバの防災訓練
 
10分で分かる最近のCakePHP
10分で分かる最近のCakePHP10分で分かる最近のCakePHP
10分で分かる最近のCakePHP
 

Vagrant で PHP 開発環境を作る ハンズオン