質問: ### 前提・実現したいこと Laravel5を使った開発環境を構築したい。 ・macのローカルソースでコーディング ・macにインストールしたvagrant上のcentOSで動作確認 ・最終外部のCentOSサーバーにデプロイ という環境で便利に構築したい。 ### 現在まで 最近まで少し古いフレームワークですが、ZendFramework1系を使って開発していた事が多くその際の開発環境として コーディング・・・mac上でphpStormを使って テスト環境・・・Cetos on macのvagrant 本番環境・・・CentOS という形で開発していた事が多く、またZendFrameworkの1系は昔ながらのダウンロードして解凍し、php.iniのinclude_pathでパスを通すという流れのフレームワークの為、composer等を使用した事がありませんでした。 現在までの開発環境は、ZendFrameworkを mac,centos on vagrant,本番centOsの3カ所すべてにダウンロード&パスを通しておき、 zfコマンドでmacのローカル上にプロジェクトを生成・・・たとえばこのパスを pathto/newprojectというディレクトリに作ったとします。 1.eclipseやphpstorm等IDEでmacのローカル環境のソースをコーディング 2.vagrantのrsync−autoでvagrant上のcentosへpathto/newprojectの中身だけ(つまりフレームワーク部分は含まない)を転送 3.macからブラウザでvagrant上のapacheにアクセスし動作確認 4.本番CentOSにデプロイする時もpathto/newprojectだけをアップロード ※ただしpathto/newprojectの中のsass等、実際の実行に関係のないファイル類はignore という環境で開発していました。(ここで言いたいのは自分たちで作った成果物のみを移動するだけだったという事。) ### 質問事項 そして今後はlaravel等composerで管理するような最近のフレームワークへ移行しようと思い、開発環境を整えるにあたり使い勝手の良い環境を作りたく質問させていただきました。 laravelで開発する際composerでプロジェクトを作成した場合 `composer create-project laravel/laravel PROJECT_NAME` でプロジェクトを作成した際、PROJECT_NAMEディレクトリにLaravelのクラス群もすべてこのディクトリ内に作られますが、今までの開発の流れに近い事をしようとすると `vagrant rsync-auto` で編集ごとにPROJECT_NAMEが丸ごと(フレームワークなどvendor依存の部分)転送となり、vagrant上のcentOSとmac間でのファイル転送がかなり大きく、また自分たちの成果物でないものまで同期対象に含める事になる。 できればmac,centos on vagrant,本番centOsすべてに一旦laravelのvendor依存部分を配置したら、その後は自分たちの成果物部分だけの同期で済ませたい。 少し考えたのが、やはりmac,centos on vagrant,本番centOsの3カ所に `composer create-project laravel/laravel PROJECT_NAME` でプロジェクトを作りvagrantのrsync対象からvendor依存の部分だけignoreさせたりという事も考えましたが、今までのZendframework時に開発していたように完全にフレームワークと自身のソースが分かれているわけではなく同じPROJECT_NAME内にありスマートじゃないなと悩んでおります。 みなさま、このような開発環境を整える際どのような開発環境にされていますか?(どこでコーディングし、どこで動作確認し、どの部分をデプロイ) composerを使うのも初めてのため、少し今風の開発環境の整え方が知りたく質問させていただきました。 よろしくお願いいたします。
回答: Vagrant上のRsyncを高速に行えるプラグイン「Vagrant-gatling-rsync」を使ってみた VagrantのデフォルトRsyncは腐っているので、上記のような高速なRsyncを行うToolも存在しています。 Vagrantfileにちょこっと追記してインストールするだけで導入出来るので、一度使ってみてはどうでしょう? また、NFSでの共有はMacユーザー中心ならば楽勝で使えます(Windowsもプラグインで動作できます) 社内のチームで運用した所、数日に一度マウントが剥がれますので都度`vagrant reload`等で立ち上げ直す感じでやってました。 試してみて問題ないor許容できそうなら乗り換えてみてください。