从一个VM实例到另一个VM(Vagrant)的卷曲请求似乎不起作用

时间:2016-09-19 10:51:40

标签: php curl vagrant virtual-machine vagrantfile

我有两个运行Scotchbox(Vagrant)实例的虚拟机,基本上有'前端'应用程序(AngularJS)和'后端'应用程序(Zend / PHP等...)

我将它们设置在两个单独的Vagrant实例上并从下面的IP运行(将它们添加到我的Windows主机文件中),这样我就可以通过域名访问它们(而不仅仅是IP地址)

192.168.33.10 myappfront.local
192.168.33.11 myappback.local

在我的前端应用程序中,我使用CURL运行以下PHP代码,以便在用户登录时基本验证令牌。

$ch = curl_init();
$parameters = $apiUrl . '/user/login/verify-new-ui?id='.$_REQUEST['id'].'&token='.$_REQUEST['token'].'&appid=3';

curl_setopt($ch, CURLOPT_URL, $parameters);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$data = json_decode(curl_exec($ch)); // always NULL??
curl_close($ch);

$ parameters变量将包含一个类似于此的URL ... https://myappback.local/user/login/verify-new-ui?id=1000001445&token=1shg7x1y7u53c1cppg36&appid=3

当我尝试var_dump $ data变量时,它总是为NULL - 我知道函数有效(它在我们的实时网站上运行正常)所以让我相信这是Vagrant相关的东西?

在vagrant实例中是否与防火墙相关?任何人都可以建议最好的解决方法吗?

我的vagrantfile如下:

Vagrant.configure("2") do |config|

config.vm.box = "scotch/box"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.hostname = "scotchbox"
config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"]
config.vm.box_download_insecure = false 

config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end

config.vm.provision :shell, :path => "bootstrap.sh"

end

//另一个后端流浪盒

Vagrant.configure("2") do |config|

config.vm.box = "scotch/box"
config.vm.network "private_network", ip: "192.168.33.11"
config.vm.hostname = "scotchbox"
config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"]

1 个答案:

答案 0 :(得分:3)

您应该将相同的记录添加到VM中,这会产生请求。如果您只在localhost上添加此记录 - 只需测试任何请求,请使用浏览器。