GuzzleHttp 抛出 ConnectExpection cURL 错误 6:无法解析主机:<localhostname>
GuzzleHttp throws ConnectExpection cURL error 6: Could not resolve host: <localhostname>
我知道有很多关于此的问题,但我似乎找不到自己的答案。
我有一个 LoginController
和 authenticate()
方法来处理登录过程。
public function authenticate()
{
$email = $_POST['email'];
$password = $_POST['password'];
if (Auth::attempt(['email' => $email, 'password' => $password])) {
$http = new \GuzzleHttp\Client([
'base_uri' => 'http://myapp.test'
]);
$response = $http->post('oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => '2',
'client_secret' => '_hashed-secret_',
'username' => $email,
'password' => $password,
'scope' => ''
]
]);
return json_decode((string) $response->getBody(), true);
}
}
我得到 cURL error 6: Could not resolve host: myapp.test (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
。我已经重新启动了我的服务器,但没有任何反应。我重建了所有容器(目前使用 laradock
),但什么也没有。
奇怪的是,它只出现在第一次尝试登录时。所以,当客户端尝试登录时,出现error
,但当客户端重新发送表单数据(F5
)时,它消失了,客户端被重定向到首页,这表明客户端是已登录。
我还重新配置了我的 .env
和其他包含 hostname
的配置(之前是 localhost
,更改为 myapp.test
)但无法修复 error
.
如有任何帮助,我们将不胜感激。提前致谢。
好的,我已经想通了。在 docker-compose.yml
文件上添加一些配置。
### PHP-FPM Container #######################################
...
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
- "myapp.test:${DOCKER_HOST_IP}"
networks:
- frontend
- backend
- webserver_network
...
### NGINX Server Container ##################################
networks:
#- frontend
#- backend
webserver_network:
ipv4_address: ${WEBSERVER_IP}
frontend:
backend:
...
### Networks Setup ############################################
webserver_network:
driver: "bridge"
config:
- subnet: "${WEBSERVER_SUBNET}"
gateway: "${WEBSERVER_GATEWAY}"
然后,重建php-fpm
容器。并且成功了。谢谢
我知道有很多关于此的问题,但我似乎找不到自己的答案。
我有一个 LoginController
和 authenticate()
方法来处理登录过程。
public function authenticate()
{
$email = $_POST['email'];
$password = $_POST['password'];
if (Auth::attempt(['email' => $email, 'password' => $password])) {
$http = new \GuzzleHttp\Client([
'base_uri' => 'http://myapp.test'
]);
$response = $http->post('oauth/token', [
'form_params' => [
'grant_type' => 'password',
'client_id' => '2',
'client_secret' => '_hashed-secret_',
'username' => $email,
'password' => $password,
'scope' => ''
]
]);
return json_decode((string) $response->getBody(), true);
}
}
我得到 cURL error 6: Could not resolve host: myapp.test (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
。我已经重新启动了我的服务器,但没有任何反应。我重建了所有容器(目前使用 laradock
),但什么也没有。
奇怪的是,它只出现在第一次尝试登录时。所以,当客户端尝试登录时,出现error
,但当客户端重新发送表单数据(F5
)时,它消失了,客户端被重定向到首页,这表明客户端是已登录。
我还重新配置了我的 .env
和其他包含 hostname
的配置(之前是 localhost
,更改为 myapp.test
)但无法修复 error
.
如有任何帮助,我们将不胜感激。提前致谢。
好的,我已经想通了。在 docker-compose.yml
文件上添加一些配置。
### PHP-FPM Container #######################################
...
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
- "myapp.test:${DOCKER_HOST_IP}"
networks:
- frontend
- backend
- webserver_network
...
### NGINX Server Container ##################################
networks:
#- frontend
#- backend
webserver_network:
ipv4_address: ${WEBSERVER_IP}
frontend:
backend:
...
### Networks Setup ############################################
webserver_network:
driver: "bridge"
config:
- subnet: "${WEBSERVER_SUBNET}"
gateway: "${WEBSERVER_GATEWAY}"
然后,重建php-fpm
容器。并且成功了。谢谢