2016-09-19 8 views
0

У меня есть две виртуальные машины, на которых запущен экземпляр Scotchbox (Vagrant), и, по сути, есть приложение «frontend» (AngularJS) и «backend» (приложение Zend/PHP и т. д.)Запрос Curl из одного экземпляра виртуальной машины в другую VM (Vagrant) не работает

У меня есть настройка на двух отдельных экземплярах Vagrant и выполняется с IP-адресов ниже (добавлено в мой файл Windows-хостов), поэтому я могу получить к ним доступ через доменное имя чем просто IP-адрес)

192.168.33.10 myappfront.local 
192.168.33.11 myappback.local 

в моем внешнем интерфейсе приложения я запускаю следующий PHP код с CURL в основном проверить маркер, когда журнал пользователя s в

$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); 

параметров переменных $ будут содержать URL, похожий на этот ... https://myappback.local/user/login/verify-new-ui?id=1000001445&token=1shg7x1y7u53c1cppg36&appid=3

Когда я пытаюсь var_dump из переменных $ данных он всегда NULL. - Я знаю, что функция работает (он работает на нашем сайте в прямом эфире), поэтому мне кажется, что это что-то связанное с Бродягой?

Это что-то брандмауэр, связанный с бродячим экземпляром? Может ли кто-нибудь предложить лучший способ понять это?

Мой 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"] 

конец

+0

Не могли бы вы показать шоу, что хранится в переменной $ apiUrl? И где вы это добавили: 192.168.33.10 myappfront.local 192.168.33.11 myappback.local Я имею в виду локальную или бродячую машину? – Evgeniy

+0

Должен ли мне редактировать файл hosts в двух экземплярах бродяг? – Zabs

+1

Конечно, если вы добавите эти записи только на localhost - просто вы можете протестировать любой запрос, использовать браузер. Если вам нужно сделать запрос от одной виртуальной машины к другой, вы должны добавить такую ​​же конфигурацию в VM, которые делают запрос. – Evgeniy

ответ

2

Вы должны добавить те же записи в VM, которые делают запрос. если вы добавите эти записи только на localhost - просто вы можете протестировать любой запрос, использовать браузер.

+0

, если он поможет другим ... использовать следующее, чтобы внести изменения в хосты файл с помощью vagrant ssh, затем выполните эту команду. sudo nano/etc/hosts – Zabs

 Смежные вопросы

  • Нет связанных вопросов^_^