ハマログ

株式会社イーツー・インフォの社員ブログ

windows10でvagrant-winnfsdを使ってNFSフォルダ同期

開発環境としてWindows + Vagrant + VirtualBoxで開発しているんですがとにかく遅い。調べてみたらvagrantのデフォルトのファイル共有が原因のようです。
そこでvagrant-winnfsdを使用して、NFSフォルダ同期を試してみました。

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

1.インストール

$ vagrant plugin install vagrant-winnfsd

2.Vagrantfileを編集してnfsを有効にする

config.vm.synced_folder "src", "/var/www/project", :mount_options => ["dmode=777","fmode=777"], type: "nfs"

3.Vagrantfileを編集してuidとgidを設定する

パラメタを介してconfig.winnfsd.uidparamとgidを介してuidを設定することができます。

Vagrant.configure('2') do |config|
config.winnfsd.uid = 1
config.winnfsd.gid = 1
end

4.vagrant upコマンド実行

vagrant up

すると

==> default: Mounting NFS shared folders...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -o vers=3,udp,nolock,vers=3,udp 192.168.33.1:/C/Users/e2info/Documents/NetBeansProjects/nice-web/src /var/www/project

Stdout from the command:

Stderr from the command:

mount.nfs: Connection timed out
Done.

SSHコマンドがゼロ以外の終了ステータスで応答しましたとエラーになったので、

5.アドレスマッピングを無効にし、再起動vagrant reload

$ vagrant ssh

vagrant at localhost in ~
$ sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
$ exit

$ vagrant reload

同じエラーが出てうまくいかなかったので、
vagrant 削除後にvagrant up

vagrant box remove CentOS7
vagrant up

これで無事起動できました。
体感速度、2倍です!!

vagrantvagrant-winnfsdWindowsフォルダ同期開発環境

S.I   S.I   2017年10月10日


関連記事

【連載1回目】WordPress開発に便利なプラグインDebug Bar

wordpressのデバッグを行う為にwordpres4.0ローカル環境にDeb…

最適化のタイミングとバランス

Premature optimization is the root of al…

PHPのcurlを卒業して、Guzzleを使う。の巻

PHPでHTTP通信するときに、PHP組み込みのcURL(Client URL …


← 前の投稿

次の投稿 →