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.

Speeding up Homestead on Windows Using NFS的更多相关文章

  1. How to setup Laravel Homestead in Windows

    How to setup Laravel Homestead in Windows by JBorbón  17. March 2017   PHP   8 Developing with PHP u ...

  2. Windows挂载NFS共享盘

    Centos7添加NFS方法请见如下链接: https://www.cnblogs.com/jackyzm/p/10285845.html 一:添加NFS服务 1.1:此电脑-右键-管理-window ...

  3. CentOS挂Windows的NFS备忘

    Windows NFS 安装和配置  注:需要将名称为“所有计算机”的访问类型改为“无访问权限”,再将可访问IP的访问类型改为“读写”,并勾选“允许根目录访问” ,如WINDOWS有防火墙开放“204 ...

  4. 解决windows 挂载 nfs 驱动器中 中文乱码问题

    乱码问题,是由于 mount.nfs 命令不支持 utf-8字符集.所以是系统软件支持的问题.在网络上找了很多方案都没能解决. 网上主要有三种方案(1)换解决方案,使用smb 共享,这等于不是解决方法 ...

  5. Windows挂载NFS目录权限问题

    windows挂载Linux上的NFS后, 可能会出现没有权限打开文件的问题   解决方法: 在注册表中添加匿名用户的默认UID和GID   计算机\HKEY_LOCAL_MACHINE\SOFTWA ...

  6. Windows Mount NFS Share from e.g. Linux

    Note: Not Stable, so steps below are for reference only ************ Linux Configuration NFS Share 1 ...

  7. Windows下NFS服务器SFU设置(可以共享linux系统)

    一.安装SFU1.下载软件SFU http://download.microsoft.com/download/a/1/c/a1ca7af1-a6e3-46e7-874a-4c5d8c0fb3b7/S ...

  8. windows挂载nfs

    注意:Win10 Creators Update前只有Win10企业版可以挂载NFS, Creators Update后专业版也可挂载NFS了. 安装 按Win+R输入OptionalFeatures ...

  9. Homestead can not mount nfs on macos catalina

    It's not a vagrant issue but nfsd/macos issue.If you add to /etc/exports line:/Users/USERNAME/Docume ...

随机推荐

  1. mock单测

    mockMvc执行流程总结: 整个过程:1.mockMvc.perform执行一个请求:2.MockMvcRequestBuilders.get("/user/1")构造一个请求3 ...

  2. 基于request.getAttribute与request.getParameter的区别详解

    HttpServletRequest类既有getAttribute()方法,也有getParameter()方法,这两个方法有以下区别:1.HttpServletRequest类有setAttribu ...

  3. 7. myeclipse10反编译插件安装

  4. 36. CentOS-6.3安装Mysql集群

    安装要求 安装环境:CentOS-6.3安装方式:源码编译安装 软件名称:mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz下载地址:http://mysql ...

  5. 微信小程序注册身份证验证

    // 校验身份证号 //校验码校验 checkCode: function (val) { var p = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2])) ...

  6. 1.Redis的应用场景

    转自:http://www.runoob.com/redis/redis-tutorial.html Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在 ...

  7. django 使用 可视化包-Pyechart

    Echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生成 Echarts 图表的类库.实际上就是 Echarts 与 Python 的对接. 本次使 ...

  8. FMX ScrollBox 拖拽控制

    Firemonkey下的ScrollBox 拖拽控制,滚动控制,拖拽,滚动条 AniCalculations 仅允许纵向拖拽,拖拽 scrlbx.AniCalculations.TouchTracki ...

  9. Others-Goldengate 数据同步

    GoldenGate 是一家创建于1995年的美国公司,开发总部设在旧金山,在北美,欧洲和亚洲(包括新加坡.印度.澳大利亚)设有支持中心. 公司名称 GoldenGate 总部地点 旧金山 成立时间 ...

  10. mongodb基础学习4-游标

    今天来讲讲游标的操作,可以先获取一组文档,再对每一个文档进行操作. 因为mongodb底层是js引擎,所有可以像操作js一样操作mongodb,比如插入数据 游标的使用:声明游标,判断是否有下一条数据 ...