问题描述

它需要连接到 wordpress.org 并且超时。我在企业防火墙后面。在以前的版本中,我从来没有遇到这个问题。为什么 themes.php 需要访问 wordpress.org,我该怎么办,所以它不会 (或者也许会让我使用我的代理设置) 。

添加错误消息:

PHP Warning: An unexpected error occurred. Something may be wrong with WordPress.org or this server』s configuration. If you continue to have problems, please try the support forums. (WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.) in C:inetpubwwwrootticketwp-adminincludestheme.php on line 298

这对 3.7 来说肯定是新的。我们有 3.6.1 安装了 4-5 次,没有问题。如果他们不能改变主题,我会有人斩首。

更新:3.8 修复了很多主要问题。但是,我们仍然无法找到插件,查找主题或获取信息板 Feed 。如果有人有这个解决方案 – 即使它是代理服务器的建议,那将是有帮助的。

最佳解决方案

导航 WP 管理员通常会触发多个外部请求,例如获取新闻源和主题/插件更新 (不计算任何插件/主题可能在自己做的) 。

您可以将配置常量放入 wp-config.php 以完全/部分阻止外部请求:

define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

或者配置外部请求以使用您的代理设置:

define('WP_PROXY_HOST', '192.168.84.101');
define('WP_PROXY_PORT', '8080');
define('WP_PROXY_BYPASS_HOSTS', 'localhost, www.example.com, *.wordpress.org');

WP_PROXY_USERNAMEWP_PROXY_PASSWORD 进行认证。

次佳解决方案

这是 WordPress 的 HTTP API 更改的问题。它不再与 cURL 完全兼容。我不知道为什么会发生这种情况 (没有提供上下文信息,发生此错误时),但您可以添加临时修复。

在插件中,或在 wp-config.php 的最后,添加以下行:

add_filter( 'http_api_transports', function()
{
    return array( 'streams' );
});

这将禁用 cURL 并使错误消息消失,而不影响服务器上的其他组件。


为了完整,在这里我目前的 cURL 细节:

$ curl --version
curl 7.26.0 (i686-pc-mingw32) libcurl/7.26.0 OpenSSL/0.9.8x zlib/1.2.7
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tf
tp
Features: GSS-Negotiate Largefile NTLM SSL SSPI libz

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。