我有一个运行Apache和PHP的Vagrant VM。所有请求最初都是由mod_rewrite路由的。
当请求包含.php以外的任何内容时,Apache只会直接提供该文件。这几乎可以在流浪汉VM的内部和外部瞬间起作用。
当请求带有.php时,会检查几个重写条件,最终Apache会将请求发送给PHP,这会加载我们的Symfony内核环境等等。我已经尝试将exit('test');
添加到该内核引导文件的第一行,因此响应应该尽可能快。字面上所有正在发生的事情是Apache正在向PHP发送请求,该请求立即退出。从VM内部,这几乎是瞬间执行。从主机上导致10分钟以上的加载时间。
此外,一切都在OS X上完美运行,完全相同的设置在不同的Windows机器上运行良好。我已经尝试重新安装/重建几乎技术的每一部分,这些都无法帮助你。
那到底是什么?从VM请求PHP与非PHP内容之间存在一些不同之处,但只有当请求来自VM外部时才存在这种差异..并且仅在特定的Windows机器上存在。
我绝对难过。有什么想法吗?
答案 0 :(得分:1)
通过从虚拟机提供商切换到vmware,我在流浪者中的网站变得非常慢,可以完全使用。
这是一个有点昂贵的解决方案,因为你绝对不应该安装vmware的试用版,因为它不能很好地使用vagrant vmware插件(按照official instructions卸载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