У меня есть две виртуальные машины, на которых запущен экземпляр Scotchbox (Vagrant), и, по сути, есть приложение ‘frontend’ (AngularJS) и приложение ‘backend’ (Zend / PHP и т. Д.)
Я настроил их на два отдельных экземпляра Vagrant и запускаю с IP-адресов, указанных ниже (добавил их в мой файл хостов Windows), чтобы я мог получить к ним доступ через имя домена (а не только по IP-адресу)
192.168.33.10 myappfront.local
192.168.33.11 myappback.local
В моем приложении внешнего интерфейса я запускаю следующий код PHP с CURL, чтобы в основном проверять токен, когда пользователь входит в систему.
$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&маркер = 1shg7x1y7u53c1cppg36&AppID = 3
Когда я пытаюсь вывести переменную $ data из переменной var_dump, она всегда равна NULL — я знаю, что функция работает (она нормально работает на нашем живом сайте), поэтому наводит меня на мысль, что это что-то связанное с 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"]
конец
Вы должны добавить те же записи в ВМ, которые делают запрос. если вы добавляете эти записи только на localhost — просто можете протестировать любой запрос, воспользуйтесь браузером.
Других решений пока нет …