2014-10-08 39 views
4

因此,我使用laravel的宅基地提供的虚拟箱容器设置了一个使用vagrant的虚拟机。 (在我的OSX环境下)使用virtualbox与vagrant + homestead的虚拟机上的慢速文件上传

我使用nfs选项方法来共享我的目录到我的本地环境,这大大加快了响应时间。在一个典型的应用程序,我得到像每页20-40ms负载。但是,我注意到文件上传速度非常慢。我可以上传一个简单的1MB文件,这个文件对文件什么都不做,大约需要30秒到1分钟。这是正常的,还是有办法加速除了使用nfs共享之外的事情。

+0

如果有人正在寻找使用他所指的nfs选项来加快响应速度,这里是:https://coderwall.com/p/2nak4q/use-nfs-to-speed-up-your- homestead-vm – zeckdude 2015-02-21 01:36:04

回答

4

东西来我的脑海:

  • 编辑/etc/nginx/nginx.conf,找到“sendfile的”设置和更改为“关”(我见过具有一些问题,它打开时,人们有些报道使用NFS);
  • 启用xdebug会减慢速度,虽然我不会指望它会像你注意到的那样产生如此巨大的差异,但如果没有其他作用,它可能是值得禁用它,看看是否有帮助;

如果这些都不起作用,请在github上创建一个回购库来重新创建问题,我会看看,看看我是否找到任何东西。

+0

第一个是它大声笑...感谢的人。 – David 2014-10-13 00:57:38

+0

其实......虚惊一场..我都兴奋不已,因为我认为它已经修好了,但我猜测它没有。我会尽快发布回购以隔离问题。 – David 2014-10-13 02:58:02

+0

好的,当你这样做的时候让我知道,我会试着重现这个问题。 – borfast 2014-10-13 15:59:02

8

这已经让我疯狂了一段时间,并且没有用Vagrant或VirtualBox的设置(发送文件,NFS,调整数据包大小等)的帮助。但随着this answer就有关失败的图片上传类似的问题的帮助下,我终于破解了:

的关键,对我来说,是改变我hosts文件,以解决我的家园域的宅基地192.168.10.10虚拟机的IP ,而不是127.0.0.1。 (执行此操作时,您还可以从URL中删除端口:8000,因此您只需导航至homestead.app)。

这将我的文件上传速度从25 KB /秒左右改为5980 KB /秒!

似乎Laravel文档在一周前更新以反映此更改。我想知道,如果您的优胜美地版本安装与文档更改一致,并且您设置了新盒子,请使用192.168.10.10,而您的旧主机设置指向127.0.0.1

即使Laravel文档已更正 - 因此此问题不应出现在新Homestead安装中 - 仍有大量教程在野外漂浮,这表明将Homestead域解析为127.0.0.1。希望这个回答将有助于缓解一些恶化!

+0

这听起来正确。我正在使用私有IP而不是我的本地主机IP。另一方面,我对流浪汉又有了一个烦恼。 HTTP://计算器。com/questions/26447926/why-doesnt-vagrant-clean-nfs-exports-file – David 2014-10-23 01:10:57

+1

是的,我认为上传缓慢是因为您的虚拟机需要等待上传数据从您的本地端口8000连接到虚拟机的端口80.将您的域更改为虚拟机的专用IP意味着上传数据更直接地传送到虚拟机。 (顺便说一句,在接受的答案中,关闭NFS的“sendfile” - 实际上,NFS本身 - 对这个问题没有任何影响,因为上传一个文件到你的流浪盒并不会触及任何东西共享文件夹。) – damiani 2014-10-23 02:51:52

+0

谢谢@damiani,这完全为我工作。这一直在让我疯狂。 FWIW,我也必须改变我的情况一些设置。在'/ etc/PHP5/FPM/php.ini'我加入: '的upload_max_filesize = 1024M 的post_max_size = 1024M' 而在'/ etc/nginx的/ nginx.conf': 'client_max_body_size1024米;' – 2015-05-27 14:05:30

相关问题