Php Wordpress更新操作在5000毫秒后超时
我在升级Wordpress时遇到了一个问题,而我的谷歌搜索并没有找到解决方案。希望你们能伸出援手 问题 我正在尝试将运行Wordpress 3.7的站点更新为Wordpress 3.8.1,但在按下“立即更新”按钮时抛出以下错误 正在从下载更新 下载失败。操作在5001毫秒后超时,收到6333109字节中的736947字节 安装失败 额外信息Php Wordpress更新操作在5000毫秒后超时,php,wordpress,apache,Php,Wordpress,Apache,我在升级Wordpress时遇到了一个问题,而我的谷歌搜索并没有找到解决方案。希望你们能伸出援手 问题 我正在尝试将运行Wordpress 3.7的站点更新为Wordpress 3.8.1,但在按下“立即更新”按钮时抛出以下错误 正在从下载更新 下载失败。操作在5001毫秒后超时,收到6333109字节中的736947字节 安装失败 额外信息 这是在我的本地MAMP开发环境中发生的,因为服务器没有进行实时升级的权限。我希望运行升级,提交代码更改,然后推送到服务器进行测试 点击“下载3.8.1”
- 这是在我的本地MAMP开发环境中发生的,因为服务器没有进行实时升级的权限。我希望运行升级,提交代码更改,然后推送到服务器进行测试
- 点击“下载3.8.1”时,zip文件可以正常下载
- 另一个可能相关的问题发生在
上,这也引发了一个错误:Plugins>addnew>Popular
在Wordpress源代码中进行了调查之后,我能够在一个名为“More Fields”的插件中找到一个破坏性过滤器。我已经禁用并卸载了插件,所有的升级都可以再次运行 好奇者的详细信息 我在
WP\uhttp\ucurl::request()中找到了这一行
函数的默认超时为5,但是WP\u Upgrader::upgrade()
实际上是通过传递300秒超时的下载包函数调用函数
罪魁祸首是插件“更多字段”,其中包括以下过滤器,该过滤器破坏了arguments数组,因此重置了默认超时:
// Prevent auto update to this custom plugin
add_filter( 'http_request_args', 'prevent_update_check', 10, 2 );
function prevent_update_check( $r, $url ) {
if ( 0 === strpos( $url, 'http://api.wordpress.org/plugins/update-check/' ) ) {
$my_plugin = plugin_basename( __FILE__ );
$plugins = unserialize( $r['body']['plugins'] );
unset( $plugins->plugins[$my_plugin] );
unset( $plugins->active[array_search( $my_plugin, $plugins->active )] );
$r['body']['plugins'] = serialize( $plugins );
}
return $r;
}
不确定它是否是故意恶意的。它看起来像是一个目标过滤器,但在WP_升级程序中,所有参数都丢失了。在Wordpress源代码中调查后,我能够在一个名为“更多字段”的插件中追踪到破坏性过滤器的问题。我已经禁用并卸载了插件,所有的升级都可以再次运行
好奇者的详细信息
我在WP\uhttp\ucurl::request()中找到了这一行
函数的默认超时为5,但是WP\u Upgrader::upgrade()
实际上是通过传递300秒超时的下载包函数调用函数
罪魁祸首是插件“更多字段”,其中包括以下过滤器,该过滤器破坏了arguments数组,因此重置了默认超时:
// Prevent auto update to this custom plugin
add_filter( 'http_request_args', 'prevent_update_check', 10, 2 );
function prevent_update_check( $r, $url ) {
if ( 0 === strpos( $url, 'http://api.wordpress.org/plugins/update-check/' ) ) {
$my_plugin = plugin_basename( __FILE__ );
$plugins = unserialize( $r['body']['plugins'] );
unset( $plugins->plugins[$my_plugin] );
unset( $plugins->active[array_search( $my_plugin, $plugins->active )] );
$r['body']['plugins'] = serialize( $plugins );
}
return $r;
}
不确定它是否是故意恶意的。它看起来像一个目标过滤器,但在WP_升级程序中,所有参数都丢失了。手动更新:这在本地主机上吗?@ObmerkKronen是,这在本地主机上localhost@RRikesh,这与其说是一个解决方案,不如说是一个变通办法。不管怎么说,我现在确实这么做了,但在尝试更新每个插件时也会出现完全相同的问题(“5000毫秒后超时”)。。我在localhost上也有同样的问题。由于3.7更改了core的整个更新机制,而且似乎有点问题(在localhost上),可能有人需要在tracDo上打开一个票证进行手动更新:这是在localhost上吗?@ObmerkKronen是的,这是打开的localhost@RRikesh,这与其说是一个解决方案,不如说是一个变通办法。不管怎么说,我现在确实这么做了,但在尝试更新每个插件时也会出现完全相同的问题(“5000毫秒后超时”)。。我在localhost上也有同样的问题。自从3.7内核的整个更新机制都改变了,而且看起来有点问题(在本地主机上),可能有人需要在trac上打开一个票证