我的所有开发站点的 WordPress 核心、插件和主题更新开始失败,并出现相同的错误 6(无法解析主机)。我可以在 WordPress 之外的同一环境中的相同 URL 上使用 CLI Curl 和 PHP 中的 Curl,不会出现任何错误。
我希望有任何想法或线索。
Curl、httpd、PHP、MariaDB 等是使用 Homebrew 安装的。
我已经尝试过了
...并得到相同的错误结果。
我不知道如何查看在调用curl_exec()时或调用curl_exec()后不久设置了哪些CURLOPTS。我怀疑 WordPress 设置了一个选项,并想在 WordPress 之外的 php 脚本中重新创建它。
<?php
add_action( 'http_api_curl', function( $curl_handle ) {
curl_setopt( $curl_handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
});
> which curl
curl: aliased to /opt/homebrew/opt/curl/bin/curl
> curl -V
curl 8.5.0 (aarch64-apple-darwin23.0.0) libcurl/8.5.0 (SecureTransport) OpenSSL/3.2.0 zlib/1.2.12 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.4 libssh2/1.11.0 nghttp2/1.58.0 librtmp/2.3 OpenLDAP/2.6.6
Release-Date: 2023-12-06
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd
> php -i | grep "SSL Version"
SSL Version => (SecureTransport) OpenSSL/3.2.0
卷曲 | |
---|---|
cURL 支持 | 已启用 |
cURL 信息 | 8.5.0 |
年龄 | 10 |
特点 | |
异步DNS | 是的 |
字符转换 | 没有 |
调试 | 没有 |
GSS-谈判 | 没有 |
国际化域名 | 是的 |
IPv6 | 是的 |
krb4 | 没有 |
大文件 | 是的 |
libz | 是的 |
NTLM | 是的 |
NTLMWB | 没有 |
SPNEGO | 是的 |
SSL | 是的 |
SSPI | 没有 |
TLS-SRP | 是的 |
HTTP2 | 是的 |
GSSAPI | 是的 |
KERBEROS5 | 是的 |
UNIX_SOCKETS | 是的 |
PSL | 没有 |
HTTPS_PROXY | 是的 |
多SSL | 是的 |
布罗特利 | 是的 |
协议 | dict、文件、ftp、ftps、gopher、gophers、http、https、imap、imaps、ldap、ldaps、mqtt、pop3、pop3s、rtmp、rtmpe、rtmps、rtmpt、rtmpte、rtmpts、rtsp、scp、sftp、smb , smbs, smtp, smtps, telnet, tftp |
主持人 | aarch64-apple-darwin23.0.0 |
SSL版本 | (安全传输)OpenSSL/3.2.0 |
ZLib版本 | 1.2.12 |
libSSH 版本 | libssh2/1.11.0 |
谢谢!
我想我已经解决了问题,尽管我看不出与为什么唯一可见的症状是这种破坏卷曲的特殊方式之间的联系。
我有很多虚拟主机,每个虚拟主机都有自己的access_log和error_log。我开始使用故障排除策略,即尝试随机的内容并禁用除两个站点之外的所有站点,以使这两个站点正常工作。然后,我搜索了诸如“虚拟主机太多”之类的内容,并了解了文件限制以及拥有太多单独的日志可能会导致问题。我重写了虚拟主机定义以使用通用日志并恢复了所有这些定义。之后,curl 和 WordPress 更新开始适用于我的所有本地站点。