Laravel 使用带有vagrant+;的virtualbox在虚拟机上缓慢上载文件;家宅

Laravel 使用带有vagrant+;的virtualbox在虚拟机上缓慢上载文件;家宅,laravel,vagrant,virtualbox,Laravel,Vagrant,Virtualbox,因此,我使用laravel's homestead提供的虚拟盒容器与vagrant建立了一个虚拟机。(在我的osx环境上) 我使用nfs选项将目录共享到本地环境,这大大加快了响应时间。在一个典型的应用程序中,我每页的负载大约为20-40毫秒。然而,我注意到文件上传速度非常慢。我可以在一个简单的表单上上传一个1MB的文件,这个表单对文件不做任何修改,大约需要30秒到1分钟。这是正常的,还是除了使用nfs共享之外,还有其他方法可以进一步加快速度 我想到的事情: 编辑/etc/nginx/nginx

因此,我使用laravel's homestead提供的虚拟盒容器与vagrant建立了一个虚拟机。(在我的osx环境上)


我使用nfs选项将目录共享到本地环境,这大大加快了响应时间。在一个典型的应用程序中,我每页的负载大约为20-40毫秒。然而,我注意到文件上传速度非常慢。我可以在一个简单的表单上上传一个1MB的文件,这个表单对文件不做任何修改,大约需要30秒到1分钟。这是正常的,还是除了使用nfs共享之外,还有其他方法可以进一步加快速度

我想到的事情:

  • 编辑
    /etc/nginx/nginx.conf
    ,找到“sendfile”设置并将其更改为“off”(我看到一些报告称,有人在使用NFS时打开它时遇到一些问题)
  • 启用xdebug会减慢速度,尽管我不希望它会像您所注意到的那样产生巨大的变化,但如果没有其他办法,那么禁用它并看看是否有帮助可能是值得的

如果这些都没有帮助,在github上创建一个repo来重新创建问题,我会看一看,看看是否找到了任何东西。

这让我发疯已经有一段时间了,再怎么玩弄Vagrant或VirtualBox的设置(sendfile、NFS、调整数据包大小等)都没有帮助。但是,在一个与失败的图像上传相关的类似问题上的帮助下,我终于破解了它:

对我来说,关键是更改我的
主机
文件,将我的宅地域解析为宅地VM的IP
192.168.10.10
,而不是
127.0.0.1
。(执行此操作时,您还可以从URL中删除端口
:8000
,因此只需导航到
homestead.app

这将我的文件上传速度从大约25 KB/秒更改为5980 KB/秒

Laravel文档似乎是在一周前更新的,以反映这一变化。我想知道您的Yosemite安装是否与文档更改同时进行,并且您在旧主机设置指向
127.0.0.1
的同时,将新框设置为
192.168.10.10


尽管Laravel文档已被更正,因此此问题不应出现在新的Homestead安装中,但仍有大量教程在野外流传,建议将Homestead域解析为
127.0.0.1
。希望这个答案能帮助你避免一些烦恼

实际上。。。虚惊一场。我很兴奋,因为我以为它已经修好了,但我想它没有。我将尝试尽快发布回购协议以隔离问题。好的,请在发布时通知我,我将尝试复制问题。我刚刚重新安装了约塞米蒂,我不再有问题。有些时候它有点慢,但有些时候它很快。我会接受的,这听起来不错。我使用的是私有ip而不是本地主机ip。另一方面,我又对流浪汉感到烦恼。是的,我认为上传速度慢是由于使用了localhost,因为虚拟机需要等待上传数据从本地端口8000转发到虚拟机的端口80。将域更改为指向VM的私有IP意味着上传数据更直接地进入VM。(顺便说一句,在公认的答案中,关闭NFS的“sendfile”,事实上,NFS本身与此问题没有任何关系,因为将文件上载到您的vagrant box不会触及共享文件夹中的任何内容。)谢谢@damiani,这对我来说完全有效。这让我快发疯了。FWIW,我还必须根据我的情况更改一些设置。在
/etc/php5/fpm/php.ini
中,我添加了:
上传最大文件大小=1024M post最大文件大小=1024M
/etc/nginx/nginx.conf
客户端最大正文大小1024M如果有人希望使用他所指的nfs选项加快您的响应时间,请参见: