2016-09-19 3 views
0

Ich habe zwei virtuellen Maschinen eine Instanz von Scotchbox (Vagrant) und im Wesentlichen ist die Anwendung der ‚Frontend‘, dort zu arbeiten (AngularJS) und die ‚Back-End 'Anwendung (Zend/PHP etc ..)Curl-Anforderung von einer VM-Instanz auf eine andere VM (Vagrant) erscheint nicht

Ich habe sie auf zwei einzelnen Vagrant-Instanzen eingerichtet und laufen von den IPs unten (fügte sie zu meiner Windows-Hosts-Datei), so kann ich sie über den Domänennamen zugreifen (eher als nur die IP-Adresse)

192.168.33.10 myappfront.local 
192.168.33.11 myappback.local 

In meiner Frontend-Anwendung den folgenden PHP-Code mit Curl im Grunde das Token, wenn eine Benutzer-Log überprüfe ich laufe s in

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

Die Variable $ Parameter eine URL ähnlich wie diese enthalten ... https://myappback.local/user/login/verify-new-ui?id=1000001445&token=1shg7x1y7u53c1cppg36&appid=3

Wenn ich versuche, die $ Datenvariable var_dump aus es immer NULL ist -. Ich kenne die Funktion funktioniert (Es läuft auf unserer Live-Site in Ordnung) so führt mich zu glauben, das ist etwas Vagrant verwandt?

Ist es etwas Firewall innerhalb der Vagabund Instanz verwendet? Kann jemand den besten Weg vorschlagen, das herauszufinden?

Mein vagrantfile ist wie folgt:

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 

// das andere Backend-Vagabund 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"] 

Ende

+0

Können Sie zeigen, was in Variable $ apiUrl gespeichert? Und wo hast du diese hinzufügen: 192.168.33.10 myappfront.local 192.168.33.11 myappback.local ich meine auf localhost oder vagabundierende Maschine? – Evgeniy

+0

Sollte ich die Hosts-Datei innerhalb der beiden vagrant Instanzen bearbeiten müssen? – Zabs

+1

Sicher, wenn Sie diese Datensätze nur auf localhost hinzufügen - nur Sie können jede Anfrage testen, verwenden Sie den Browser. Wenn Sie eine Anforderung von einer VM zur anderen stellen müssen, sollten Sie der VM dieselbe Konfiguration hinzufügen, die eine Anfrage stellt. – Evgeniy

Antwort

2

Sie sollten dieselben Datensätze in VM hinzufügen, die Anfrage zu machen. Wenn Sie diese Datensätze nur auf localhost hinzufügen - nur Sie können jede Anfrage testen, verwenden Sie den Browser.

+0

wenn es anderen hilft ... verwenden Sie die folgenden Hosts zu ändern Datei mit vagrant ssh dann diesen Befehl ausführen. sudo nano/etc/hosts – Zabs

Verwandte Themen