Vagrant + Apache + PHP在Windows上运行得非常慢


Vagrant + Apache + PHP running extremely slowly on Windows

我有一个运行Apache和PHP的Vagrant VM。所有请求最初都由 mod_rewrite 路由。

当请求包含除.php以外的任何内容时,Apache 只是直接提供该文件。这几乎可以立即从流浪虚拟机内部和外部工作。

当一个请求带有.php时,会检查几个重写条件,最终Apache将请求发送到PHP,PHP加载我们的Symfony内核环境等等。我尝试将exit('test');添加到该内核引导文件的第一行,因此响应应该尽可能快。从字面上看,所有发生的事情都是Apache将请求发送到PHP,PHP立即退出。从 VM 内部,这几乎是即时执行的。从主机上,这会导致 10+ 分钟的加载时间。

此外,一切都在OS X上完美运行,完全相同的设置在不同的Windows机器上工作正常。我尝试重新安装/重建几乎所有推动这一点的技术部分都无济于事。

那到底是什么?从 VM 请求 PHP 内容与非 PHP 内容之间存在一些差异,但这种差异仅在请求来自 VM 外部时才存在。并且仅在特定的 Windows 计算机上。

我完全被难住了。有什么想法吗?

我有一个

非常慢的流浪者站点,通过从 virtualbox 提供商切换到 vmware 提供商,可以完全使用。

不过,这是一个有点昂贵的解决方案,因为您绝对不应该安装 vmware 的试用版,因为它不能很好地与流浪的 vmware 插件配合使用(按照官方说明卸载 vmware,然后在购买后重新安装完整版)。

此外,vagrant vmware插件是从hashicorp单独购买的。根据我的经验,它们绝对值得。你会为轻松的生活支付总共 100 美元左右吗?

在飞溅之前尝试其他事情。

在 Vagrantfile 中显式指定 VM 的资源,并使用private_network而不是端口转发。为虚拟机留出 1/4 的系统 RAM。不要使用系统上已使用的 IP 地址。它应该工作正常,如下所示。

Vagrant.configure(2) do |config|
  config.vm.box = "lattice/ubuntu-trusty-64"
  config.vm.network "private_network", ip:"192.168.50.4"
  config.vm.provider "virtualbox" do |v|
    v.memory = 2048
    v.cpus = 2
  end
end