Speeding up Homestead on Windows Using NFS

Speeding up Homestead on Windows Using NFS

Sep 07 2015

Homestead Laravel

EDIT: I have another article on using Homestead with sFTP and Sublime which may be a better option for some.

I recently took the plunge into getting a Homestead vagrant box setup locally for development. I followed the instructions on the Laravel docs page and all went well. It took me only about ten minutes to get everything working within Homestead, awesome!

But wait, why is everything so slow? I started searching Google and it seems it's a common problem for Windows. It seems the trick is to enable nfs support for windows and boot your folders using the nfs file system.

It took a bit of searching and tinkering so thought I would share the few simple steps it takes to enable nfs for vagrant on Windows.

Install NFS Plugin

Just run this install for the plugin from anywhere.

vagrant plugin install vagrant-winnfsd
Update homestead.rb

There is some weird bug here, not sure why it hasn't been pushed into the main repo yet, but you will need to replace some code here (if not already live).

homestead/scripts/homestead.rb

Replace the following:

if settings.include? 'folders'
  settings["folders"].each do |folder|
    mount_opts = []

    if (folder["type"] == "nfs")
      mount_opts = folder["mount_opts"] ? folder["mount_opts"] : ['actimeo=1']
    end

    config.vm.synced_folder folder["map"], folder["to"], type: folder["type"] ||= nil, mount_options: mount_opts
  end
end

With this:

if settings.include? 'folders'
  settings["folders"].sort! { |a,b| a["map"].length <=> b["map"].length }

  settings["folders"].each do |folder|
    config.vm.synced_folder folder["map"], folder["to"], 
    id: folder["map"],
    :nfs => true,
    :mount_options => ['nolock,vers=3,udp,noatime']
  end
end
Update Homestead.yaml

We can now use nfs in the folders section of the homestead config file.

folders:
    - map: ~\projects
      to: /home/vagrant/Code
      type: nfs
Rebooting

You may also need a reboot at this point especially if you've been playing around to try and get this working.

First make sure you remove any vm in your VirtualBox and also check the ~\VritualBox VMs folder to make sure everything is deleted.

After a reboot try vagrant up again and it should spin up a new box. I found when I added folders I had to go through this each time. Fortunately that doesn't happen often at all.

Disable Sendfile

This is on a bit of a side note, but it's also recommended that sendfile for Nginx be disabled.

> sudo vi /etc/nginx/nginx.conf

And change sendfile from on to off.

转载于:https://www.cnblogs.com/mouseleo/p/9511817.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值