Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress更新操作在5000毫秒后超时_Php_Wordpress_Apache - Fatal编程技术网

Php Wordpress更新操作在5000毫秒后超时

Php Wordpress更新操作在5000毫秒后超时,php,wordpress,apache,Php,Wordpress,Apache,我在升级Wordpress时遇到了一个问题,而我的谷歌搜索并没有找到解决方案。希望你们能伸出援手 问题 我正在尝试将运行Wordpress 3.7的站点更新为Wordpress 3.8.1,但在按下“立即更新”按钮时抛出以下错误 正在从下载更新 下载失败。操作在5001毫秒后超时,收到6333109字节中的736947字节 安装失败 额外信息 这是在我的本地MAMP开发环境中发生的,因为服务器没有进行实时升级的权限。我希望运行升级,提交代码更改,然后推送到服务器进行测试 点击“下载3.8.1”

我在升级Wordpress时遇到了一个问题,而我的谷歌搜索并没有找到解决方案。希望你们能伸出援手

问题

我正在尝试将运行Wordpress 3.7的站点更新为Wordpress 3.8.1,但在按下“立即更新”按钮时抛出以下错误

正在从下载更新

下载失败。操作在5001毫秒后超时,收到6333109字节中的736947字节

安装失败

额外信息

  • 这是在我的本地MAMP开发环境中发生的,因为服务器没有进行实时升级的权限。我希望运行升级,提交代码更改,然后推送到服务器进行测试
  • 点击“下载3.8.1”时,zip文件可以正常下载
  • 另一个可能相关的问题发生在
    Plugins>addnew>Popular
    上,这也引发了一个错误:
发生意外错误。WordPress.org或此服务器的配置可能有问题。如果您仍然有问题,请尝试支持论坛

再试一次


在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上打开一个票证