SlideShare a Scribd company logo
Submit Search
Upload
VagrantでSymfony開発
Report
Yosuke Karasawa
Follow
•
3 likes
•
5,642 views
1
of
22
VagrantでSymfony開発
•
3 likes
•
5,642 views
Download Now
Download to read offline
Report
Software
Yosuke Karasawa
Follow
Recommended
よこはまクラウド勉強会 01
basyura
694 views
•
19 slides
Xamarinは辛いよ
Takkiiii
809 views
•
12 slides
THETA S でライブストリーミング(途中経過)
KatsuyaENDOH
5.3K views
•
9 slides
初心者Vimmerによるvim+rails開発
Daisuke Kikuchi
8.5K views
•
34 slides
Cpi mega mix
Ryuji Egashira
1.7K views
•
47 slides
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Yoshito Tabuchi
1.5K views
•
66 slides
More Related Content
What's hot
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
jz5 MATSUE
1.4K views
•
79 slides
2016 04-15 nl-nagoya_vim8
cohama
1.2K views
•
18 slides
WordCamp Tokyo 2014
horike37
3.8K views
•
59 slides
Vimから見たemacs
Shougo
20.5K views
•
24 slides
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Yoshito Tabuchi
7.9K views
•
68 slides
Xamarinを利用したアプリ開発
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
2.1K views
•
29 slides
What's hot
(19)
マスコットアプリ─ キャラアプリ─ 開発 with Xamarin
jz5 MATSUE
•
1.4K views
2016 04-15 nl-nagoya_vim8
cohama
•
1.2K views
WordCamp Tokyo 2014
horike37
•
3.8K views
Vimから見たemacs
Shougo
•
20.5K views
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Yoshito Tabuchi
•
7.9K views
Xamarinを利用したアプリ開発
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
•
2.1K views
2014 12-06 ngk2014-b_2014年のvim
cohama
•
913 views
Webエンジニアのためのプロジェクションマッピング(とりあえず完結編)
KatsuyaENDOH
•
703 views
暗黒美夢王とEmacs
Shougo
•
14.7K views
Xamarin を使用したC# によるモバイルアプリ作成
Yoshito Tabuchi
•
1.4K views
2015年 失敗しない! WordPress多言語サイト制作で 絶対に知っておきたいこと
Katz Ueno
•
102.9K views
VimとRubyのアツい関係
Misao X
•
3.1K views
Cocoa Binding 童貞だけど解説してみる
Takkiiii
•
609 views
DMMのIPv6に関する取り組み 2016年2月版
Ken SASAKI
•
4.2K views
Cod2013 Sapporo #1
Tomoyuki Obi
•
973 views
Word camp tokyo2014 わぷーステージ振り返り
Sosuke Eguchi
•
701 views
IPv6にどう取り組むか
Ken SASAKI
•
29.4K views
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
Shougo
•
11.5K views
2014年 失敗しない! WordPress 多言語サイト制作で絶対に知っておきたいこと
Katz Ueno
•
24.3K views
Viewers also liked
やってみた -URL外形監視-
Joe_noh
2.1K views
•
19 slides
Symfony Deployment with Capifony #symfony_ja
Tak Nishikori
4.1K views
•
16 slides
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
77web
3.1K views
•
9 slides
Symfony 2.5について
Issei Murasawa
4.8K views
•
39 slides
Symfony勉強会#9 form
Yuichi Okada
4.8K views
•
30 slides
A Deep Dive into JSON-LD and Hydra
Markus Lanthaler
9.8K views
•
43 slides
Viewers also liked
(7)
やってみた -URL外形監視-
Joe_noh
•
2.1K views
Symfony Deployment with Capifony #symfony_ja
Tak Nishikori
•
4.1K views
第9回Symfony勉強会LT Symfony2 meets AngularJS #symfony_ja
77web
•
3.1K views
Symfony 2.5について
Issei Murasawa
•
4.8K views
Symfony勉強会#9 form
Yuichi Okada
•
4.8K views
A Deep Dive into JSON-LD and Hydra
Markus Lanthaler
•
9.8K views
管理画面のアクセスコントロール
Masao Maeda
•
25K views
Similar to VagrantでSymfony開発
Ruby on vim yokohama.vim発表資料
Shohei Kobayashi
8K views
•
45 slides
VagrantからDockerに開発環境を移行した時の話
Daijiro Abe
4.1K views
•
18 slides
ios_startup
Yusuke Arai
1.2K views
•
16 slides
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
Kenichi Mukai
2.5K views
•
29 slides
Vagrant - 最近流行ってるらしいけど何者?
Yoshinori Nakanishi
5.6K views
•
24 slides
Arduino を PHP で制御する
Kenichi Ahagon
5.9K views
•
36 slides
Similar to VagrantでSymfony開発
(6)
Ruby on vim yokohama.vim発表資料
Shohei Kobayashi
•
8K views
VagrantからDockerに開発環境を移行した時の話
Daijiro Abe
•
4.1K views
ios_startup
Yusuke Arai
•
1.2K views
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
Kenichi Mukai
•
2.5K views
Vagrant - 最近流行ってるらしいけど何者?
Yoshinori Nakanishi
•
5.6K views
Arduino を PHP で制御する
Kenichi Ahagon
•
5.9K views
VagrantでSymfony開発
1.
Vagrantで Symfony開発 2014/4/19 @karakaram Symfony勉強会 #9 14年4月20日日曜日
2.
自己紹介 • @karakaram • karakaram-blog http://www.karakaram.com 14年4月20日日曜日
3.
今日話すこと • VagrantでSymfony開発してみて • つまずいた所 •
どのように解決したか 14年4月20日日曜日
4.
Vagrantとは • VirtualBoxなどの仮想化ソフトウェアの 操作を自動化するツール • Chefなどと連携することで、コマンド 一発で仮想環境を構築することができる 14年4月20日日曜日
5.
なぜVagrantを使おうと思ったか • 業務の都合上、ホストOSはWindows • VirtualBoxでプロジェクトごとに仮想 Linuxを立ち上げ、その中で開発 14年4月20日日曜日
6.
なぜVagrantを使おうと思ったか • メールや仕様書はWindows、開発は仮 想OS •仮想OSとホストOSの移動が面倒 • ホストOSで開発したいとのチームの声 14年4月20日日曜日
7.
なぜVagrantを使おうと思ったか • Vagrantのsynced_folderを利用した開 発スタイルが良さげ • 試してみよう 14年4月20日日曜日
8.
Vagrantでの開発スタイル ホストOS Windows Mac 仮想OS CentOS $ vagrant up ソースコード編集 バージョン管理 テスト実行 ブレークポイント 共有フォルダ synced_folder PHP実行 テスト結果応答 デバッグステップ実行 動作確認 ホストOSで開発 仮想OSでPHP実行 仮想OSのGUIを使わない 14年4月20日日曜日
9.
synced_folder • synced_folderで、ホストOSと仮想OS のフォルダを共有する • 共有フォルダをWEBサーバのドキュメ ントルートにして、Symfonyを丸ごと 配置 #
Vagrantfile config.vm.synced_folder "host_folder", "guest_folder", :create => true, :owner=> 'vagrant', :group=>'vagrant', :mount_options => ['dmode=755,fmode=664'] 14年4月20日日曜日
10.
synced_folderが遅い • 便利なsynced_folderだが、Symfony のような巨大フレームワークと相性が悪 い • ファイル数が多い場合、パフォーマンス が落ちる •
1リクエスト処理に5秒∼10秒かかる 14年4月20日日曜日
11.
速くできないか調べた • synced_folderのNFS化 • Samba •
SymfonyのキャッシュをRAMディスク に • Xdebug無効 14年4月20日日曜日
12.
対策の結果 • 1リクエストあたり5秒∼10秒かかって いたが、1秒前後に短縮させることに成 功 • まだ少し遅いけど何とか実用レベル 14年4月20日日曜日
13.
synced_folderのNFS化 • ホストOSがMacの場合は synced_folderのtypeをNFSに # Vagrantfile config.vm.synced_folder
"host_folder", "guest_folder", type: "nfs" # MacのNFSを有効化 $ sudo touch /etc/exports $ sudo nfsd enable # 仮想OS再起動 $ vagrant reload 14年4月20日日曜日
14.
Samba • ホストOSがWindowsの場合、NFSを 利用できない • 仮想OSにSambaを入れてフォルダ共有 •
synced_folderはオフに 14年4月20日日曜日
15.
キャッシュをRAMディスクに • SymfonyのキャッシュとログをRAMデ ィスクに出力 //app/AppKernel.php メソッドを追加 public
function getCacheDir() { if (in_array($this->environment, array('dev', 'test'))) { return '/dev/shm/symfony/cache/' . $this->environment; } return parent::getCacheDir(); } public function getLogDir() { if (in_array($this->environment, array('dev', 'test'))) { return '/dev/shm/symfony/logs'; } return parent::getLogDir(); } 14年4月20日日曜日
16.
キャッシュをRAMディスクに • cacheをRAMディスクに出力すると速 くなるが、困ることも • PhpStormのSymfony2-Pluginは入 力補完のためにキャッシュを利用してい る •
共有フォルダ上にキャッシュがないと補 完が効かなくなる 14年4月20日日曜日
17.
キャッシュをRAMディスクに • 10分に1回、rsyncでRAMディスクの キャッシュを共有フォルダに同期 • ホストOSのPhpStormからキャッシュ が見えるようになり、補完が効く RAMディスク 共有フォルダ (ドキュメントルート) /dev/shm/symfony/cache
/var/www/vagrant/symfony/app/cache rsync cache 参照 14年4月20日日曜日
18.
Xdebugは無効に • Xdebugは遅いので無効に • どうしても必要な時だけ有効にする •
デバッガを使わないでテストを書こう 14年4月20日日曜日
19.
Windowsはあと一歩 • Sambaによるファイル共有は、パフォ ーマンスは問題ない • 共有フォルダでgitを使うとlinuxとのパ ーミッションの違いに悩まされることも •
Vagrant1.5で追加されたrsyncによる 共有が状況を打開してくれるかも? 14年4月20日日曜日
20.
rsyncによる共有に期待 • rsyncによる共有は現時点では同期がホ スト→ゲストの一方通行 • venderとcacheの変更をホストOSに伝 えるのが面倒なので、Symfony開発に は不向き •
双方向に同期するissueが出ていたの で、今後に期待 14年4月20日日曜日
21.
まとめ • VagrantでSymfony開発は synced_folderに工夫が必要 • Macでの開発は実用レベル •
Windowsは(個人的には)あと一歩 • synced_folder type: rsyncに期待 14年4月20日日曜日
22.
おまけ • サンプルVagrantfile +
Chef • CentOSにSymfony環境を構築 • vagrant up 後すぐにSymfonyを試せる https://github.com/karakaram/vagrant-php-symfony2-sandbox 14年4月20日日曜日