開発で用いるVagrantのパフォーマンスを上げる

EC-CUBE3のカスタマイズにVagrantを用いているのですが、パフォーマンスがすこぶる悪いです。NFSを用いてフォルダの同期を行うと、パフォーマンスが改善すると目にしたので試してみたところ、いくつかのトラブルと遭遇しましたので、それを記録として残します。

バージョン

EC-CUBE3:3.0.10

NFSでのフォルダ同期設定

下記のディレクトリを同期しています。設定手順はこちら

パーミッションについて

同期したファイル、ディレクトリについて、EC-CUBE3の仕様に則した適切なパーミッションを設定して下さい。

所有者、グループについて

同期共有した全てのファイル、ディレクトリは、所有者とグループが、それぞれ、VagrantでゲストOSを起動したホストOSのユーザー(以下ホストユーザー)、ホストOSのグループ(以下ホストグループ)となっています。

Webサーバー実行ユーザー(通常はVagrant仮想マシンのユーザー”vagrant”)が、ファイル、ディレクトリにアクセスできるよう設定して下さい。

私は、ゲストOS側に、ホストグループと同じgidを持つグループを作成し、それに”vagrant”ユーザーを追加して、アクセス権限を与えました。

セッションファイルの保存先を変更

最新のEC-CUBE3では、設定ファイルでセッションファイルの保存先を変更できるので、NFSで同期したディレクトリとは別の場所に保存先を変更して下さい。

3.0.10のようにセッションファイル保存先が変更できない場合、こちらを参考に、シンボリックリンクを用いて保存先を変更して下さい。”<当該プログラムのセッション保管ディレクトリ>”は、下記になります。

パフォーマンスについて

ここまでの設定がうまく出来ていれば、EC-CUBE3は動作するはずです。私の環境では、全体的にちょっと速くなったかな?といった程度で、劇的に速くはなりませんでした。

キャッシュクリアについて

キャッシュを保存するディレクトリの周遊者が、Webサーバー実行ユーザーと一致しない為、EC-CUBE3の管理画面からキャッシュをクリアする際に、権限の問題でクリアできません。ホスト側で手動でクリアする必要があります。

その際、『セッションファイルの保存先を変更』の項で作成したシンボリックリンクを、誤って削除しないように気を付けて下さい。