AWS Amazon Server:cURL错误无法解析主机

时间:2019-08-13 02:14:32

标签: php laravel amazon-web-services guzzle

几个月来,我一直在使用无风扇ubuntu服务器,并将我的Laravel API Passport转移到Ubuntu等不同的服务器上,并用于开发Windows

我的api的当前版本在这些服务器上运行正常。直到我将laravel项目转移到AWS Amazon server并收到这样的错误

{
"message": "cURL error 6: Could not resolve host: api-a.mydomain.comoauth (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)",
"exception": "GuzzleHttp\\Exception\\ConnectException",
"file": "/var/www/html/api_tk_a/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php",
"line": 185,
"trace": [
{
   ....some line of multiple errors
}
]

}

我尝试将一些代码行添加到我的etc/hosts文件中

像这样

52.***.***.205 api-a.mydomain.com 52.***.***.205 api-b.mydomain.com

127.0.0.1 api-a.mydomain.com 127.0.0.1 api-b.mydomain.com

还尝试将我的inet addr:171.*.**.**放到我的hosts文件中,仍然遇到相同的错误

我有2个不同的api,这就是为什么有ab

但是这些都不起作用。

谁能指出我收到此错误的原因。

一些线程说,这与Guzzle无关,但明确指出了IPDNS。但是我找不到解决这个问题的好方法。

更新

我的.env文件具有类似的内容

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:1AEVUl5JHMzLkhxU7MDlDHtfZ6KB9UybjzUxLaYp9vg=
APP_DEBUG=true
APP_URL=http://localhost

我试图将APP_URL设置为https://api-a.mydomain.com仍然无法正常工作。

API代码This code is working fine

$http = new Client;
        $response = $http->post(url('oauth/token'), [
            'form_params' => [
            'grant_type' => 'password',
            'client_id' => '2',
            'client_secret' => '8mEsN0RZkljKZlbiJFfnNKahcbcOVkoQVG7C2Xwl',
            'username' => $user->email,
            'password' => $request->password,
            'scope' => '',
            ],
        ]);

这是我的routes/api.php

use Illuminate\Http\Request;
Route::post('/login','Auth\Api\AuthController@login');

EC2

enter image description here

2 个答案:

答案 0 :(得分:0)

要使ping在EC2实例中工作,必须在IP安全组中打开ICMP端口。同样要进行卷曲,请确认是否已为实例打开端口8080/80。

答案 1 :(得分:0)

我找到了解决方法:

我使用了$http->post('https://api-a.mydomain.com' . '/oauth/token', [

Laravel passport trying to get oauth/token. Guzzle keeps hanging, also on other Guzzle calls