VCCWのローカル環境を高速化!NFSマウントを設定する方法

vccw_speedup01

WordPressのローカル環境構築に便利なVCCWですが、唯一の欠点が動作が遅いことです。その欠点を克服する方法を知りました。それもお手軽かつ、効果が高いです。私はこれを導入することでかなり快適になりました。本番と大差ない状態です。それでは早速方法をお伝えします。

VCCWの導入については、WordPressローカル環境構築におすすめ!VCCW導入手順を参照ください。

スポンサーリンク

VCCWを高速化する方法

VCCWのローカル環境を高速化する方法は、

Vagrantの共有フォルダのマウント形式をNFSに変更する

だけです。たったこれだけでかなり高速化できます。Macの場合、標準でNFSに対応しているので、Vagrantファイルの編集だけで対応完了です。

WindowsにもNFSを利用する方法があります。後半に出てきます。

Vagrantの共有フォルダをNFSに変更する方法

Vagrantfileを編集します。

ファイル内で以下の記述を探します。2行書き換えます。

編集前

config.vm.synced_folder ".", "/vagrant",:mount_options => ['dmode=755', 'fmode=644']
config.vm.synced_folder _conf['sync_folder'], _conf['document_root'], :create => "true", :mount_options => ['dmode=755', 'fmode=644']

編集後

config.vm.synced_folder ".", "/vagrant", type: "nfs"
config.vm.synced_folder _conf['sync_folder'], _conf['document_root'], type: "nfs"

編集後、いつものようにvagrant upして完了です。立ち上がったら以下のコマンドでNFSマウントされてるか確認できます。

vagrant ssh
df -t nfs

NFSマウントしているフォルダが表示されます。

WindowsでNFSを利用する方法

Windowsでは、VagrantのプラグインをインストールすることでNFSマウントできるようになります。

以下のコマンドを実行します。

vagrant plugin install vagrant-winnfsd

あとは、Vagrantfileを書き換えてください。Vagrantの公式にNFSはWindowsで非対応と書いていますが、このプラグインを使うことで対応できます。

なお、Windows7のUltimate、Enterpriseなど、Windowsの上位エディションではWindowsの設定でNFSを有効にできるそうです。

NFSとは?

この項は興味のある方だけ読んでください。理解してなくてもだいじょうぶです。

IT用語辞典:NFS 【 Network File System 】より引用

NFSとは、主にUNIX系OSで利用される分散ファイルシステム、および、そのための通信規約(プロトコル)。 ネットワークを介して別のコンピュータの外部記憶装置(ストレージ)をマウントすることができ、そこに保存されているディレクトリやファイルをあたかも手元にあるかのように扱うことができる。

難しいこと書いてますが、とにかくローカルのホスト(MacやWindows)とゲスト環境(Vagrant上のCentOSなど)のフォルダの同期を意識せずに勝手にやってくれるという仕組みです。Macでソースを変更したら仮想環境に勝手に反映され、Macで仮想環境のWordPressに接続して表示確認できるわけです。

VCCWで勝手にフォルダを同期してくれる仕組みがVagrantのsynced_folderという機能です。VCCWはVirtualBoxとVagrantの組み合わせです。この組み合わせだとデフォルトでVirtualBoxのshared foldersという仕組みを利用します。これが遅いので、NFSという別の仕組みを使うというのが本記事の内容です。

今回の内容を確認した環境

  • Mac OS X yosemite
  • Windows 7 Professional
  • VCCW 2.18.0

スポンサーリンク

この記事が気に入っていただけたらシェアお願いします。励みになります。
prev WordPressを高速化!PageSpeed Insightsで高得点を目指す方法 next WordPressのシンタックスハイライトをプラグインなしで!prism.jsがオススメ!

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です