2017-10-16 66 views
1

我試圖發送api請求與guzzle和cURL從sub1.example.local(本地主機)到sub2.example.local(localhost)。這兩個laravel 5.4項目。但它使用sub1.example.local的數據庫。從sub1.example.local(本地主機)到sub2.example.local(本地主機)的cURL/Guzzle請求使用相同的數據庫

即使使用session_write_close();

 $ch = curl_init(); 

     curl_setopt($ch, CURLOPT_URL, "http://sub2.example.local/api/user/login"); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, "email=\"[email protected]\"&password=\"big_secret\""); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLINFO_HEADER_OUT, 1); 
     curl_setopt($ch, CURLOPT_CONNECT_TO, ['hesabatlar.local','80','sub2.example.local','80']); 

     $headers = array(); 
     $headers[] = 'Accept: application/json'; 
     $headers[] = 'Content-Type: application/x-www-form-urlencoded'; 
     $headers[] = 'Host: hr.hesabatlar.local'; 

     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

     session_write_close(); 

     $result = curl_exec($ch); 

     if (curl_errno($ch)) { 
      echo 'Error:' . curl_error($ch); 
     } 
     curl_close ($ch); 

回答

1

的原因是,請求子2的SUB2 .ENV在不加載和使用SUB1 .ENV文件。所以我得到sub1數據庫。欲瞭解更多信息,請參閱源代碼如果在配置文件夾中寫入你的配置,它工作正常。

此問題僅在Windows中發生,並且在Linux中正常運行。不確定是什麼導致了這個問題。

來源:https://github.com/laravel/framework/issues/16407