cURL + Laravel Valet + dnsmasq 不工作

2022-08-30 23:54:44

当我执行一个PHP脚本时,该脚本使用Laravel Valet / dnsmasq在我的Mac上设置了一个cURL请求,该请求对我的Mac上设置了cURL请求,我打印了此错误:

无法解析:mydomain.test(找不到域名)

当我在浏览器中测试域时,没问题。
当我在终端中运行时,我得到 HTTP/2 200 代码,所以没关系。
当我在终端中运行时,我得到页面的源代码,所以没问题。curl -Ik https://mydomain.testcurl -k https://mydomain.test

为什么它不能与PHP的cURL一起使用?我很绝望...

更新

由于大众需求;-)这是我的cURL代码。你不能做更简单的:

try {
    $ch = curl_init( "http://mydomain.test" );
    curl_exec( $ch );
    dump(curl_error($ch));
    curl_close( $ch );
} catch (Exception $e) {
    var_dump($e);
}

答案 1

此问题是由 curl 版本引起的,您可以从终端检查您的 curl 版本吗

curl --versionphp --ri curl

当您运行时,您将看到此行。php --ri curlcURL Information => 7.63.0

然后,您可以比较您的版本,并看到哪个 curl 版本不适用于 dnsmasq。

我遇到了这个问题,我的curl版本是php中的7.64.0。


为了解决这个问题:

你可以卸载 curl-openssl,以下命令将删除 curl-openssl 的最后一个版本:

brew uninstall curl-openssl --ignore-dependencies

然后重新启动 php:

brew services restart php

重新启动后,php将看到curl,这是,这个版本可以访问本地域。/usr/bin/curl


答案 2

....重新启动后,php将看到 curl,它是 /usr/bin/curl,这个版本可以访问本地域。

重新启动后,代客泊车:代客泊车重新启动


推荐