php - 从一个虚拟机实例到另一台虚拟机 (Vagrant) 的 Curl 请求似乎不起作用

标签 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 代码,以便在用户登录时基本上验证 token 。

$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 实例中的防火墙相关?谁能提出解决这个问题的最佳方法?

我的 Vagrant 文件如下:

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 box

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"]

结束

最佳答案

您应该将相同的记录添加到提出请求的VM中。如果您仅在本地主机上添加此记录 - 您可以测试任何请求,请使用浏览器。

关于php - 从一个虚拟机实例到另一台虚拟机 (Vagrant) 的 Curl 请求似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39571365/

相关文章:

powershell - vagrant 错误此主机上的 powershell 版本低于要求

php - 检查 cookie 并使用 Apache 重定向

php - 在 PHP 中以编程方式将照片作为页面本身上传到 Facebook 页面

PHP MySQL 将帖子链接到用户

oracle - 如何在 PL/SQL 中发送带有表单数据和参数的 POST 请求

nginx - 在 Nginx 代理后面的 Vagrant 上设置 Spring boot 应用程序

php - 使用 php 纯文本和 html 发送电子邮件

json - bash shell 脚本出现问题,尝试使用 cURL 发布变量 JSON 数据

php - cURL 从命令行获取响应 + 回调

node.js - 如何在 debian vagrant box 上安装 npm?