Wordpress 导入器错误:最大执行时间 60 秒

Posted

技术标签:

【中文标题】Wordpress 导入器错误:最大执行时间 60 秒【英文标题】:Wordpress importer error: max execution time 60 seconds 【发布时间】:2016-08-27 03:10:31 【问题描述】:

我正在尝试使用默认的 wordpress importer 插件导入 Wordpress 主题 unit test xml。我收到以下错误:

致命错误:E:\XAMPP\htdocs\wp\wp-includes\wp-db.php 中的最大执行时间超过 60 秒

这是一个基本的 Wordpress 4.5.1 安装,没有其他插件或主题,除了 wordpress importer v 0.6.1,在我的本地 XAMPP 服务器上,执行时间限制在 php.ini 中设置为 6000,我可以看到这个预设在 xampp 的 php_info 中。 我已经尝试在 wp-config.php 和 wp-db.php 中添加 set_time_limit(6000) ,结果同样丑陋。

任何想法为什么会发生这种情况以及如何解决?

【问题讨论】:

davidwalsh.name/… 【参考方案1】:

安装自定义 php 设置插件 https://wordpress.org/plugins/custom-php-settings/

max_execution_time=60000

memory_limit=1024M

upload_max_filesize=1024M

post_max_size=1024M

max_input_vars=5000

然后保存这些设置,我确定你会得到你的解决方案,谢谢

如果还没有解决那么

与你的主人交谈。

【讨论】:

【参考方案2】:

只需转到 wp-config 文件并粘贴此 set_time_limit(60); 或将括号中的数字更改为您想要的选择。

【讨论】:

【参考方案3】:

我找到了发生此错误的确切原因,因此我将尝试为我自己的问题提供答案。

在 wp-includes/deprecated.php 中有一个名为 wp_get_http 的函数,它仍然被 wordpress 导入器插件使用(在 wordpress-importer.php 源文件中)。 在这个函数内部调用了 set_time_limit(60) ,它是所有 wordpress 源代码中对这个函数的两次调用,参数为 60 的其中一个,因此这是将导入程序执行时间限制为 60 秒的地方。

wp_get_http 由导入器插件在执行流程的后期调用,因此它会覆盖 wp-config.php 中任何其他可能的 set_time_limit() 调用,并且无法通过 php.ini 中的修改来纠正,这本身可能会发生托管服务提供商不允许。

对我有用的快速解决方案是修改 wp-includes/deprecated.php 中 wp_get_http() 中的 set_time_limit 调用,如下所示:

set_time_limit(1200); // Limit to 20 minutes

它让 wordpress 导入器有 20 分钟的时间来获取它在导入过程中可能需要的所有远程文件。可能这不是最安全的解决方案,但它对我有用。

【讨论】:

【参考方案4】:

将此添加到您的 .htaccess 文件中

<IfModule mod_php5.c>
php_value post_max_size 16M
php_value upload_max_filesize 16M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300
php_value session.gc_maxlifetime 900
</IfModule>

这个到你的 wp-config.php

define('WP_MEMORY_LIMIT', '128M');

【讨论】:

【参考方案5】:

这是因为您在 php.ini 中的文件上传时间设置为 60 seconds,而 WordPress 需要更多时间才能正确上传该数据。随着时间在php.ini 结束,它会抛出该错误。解决方案是您必须增加适合您的上传时间。

set_time_limit(300); //it will update your time to 300 seconds or 5 minutes.
max_execution_time(300);

用您自己的 php.ini 文件的代码行替换该代码行,您的问题将得到解决。如果问题仍然存在,您可以将该数字增加到 300 甚至更多,直到您的文件正确上传。如需进一步阅读,请访问http://php.net/manual/en/function.set-time-limit.php

【讨论】:

我已经更新了我的答案,添加了 max_execution_time ... 在 php.ini 中应用它并希望它能起作用【参考方案6】:

您可以将其添加到您的 php.ini 中

set_time_limit(0);

肯定能解决问题。

【讨论】:

这不起作用并且不正确。首先,似乎导入需要超过 60 秒才能完成。然后,我已经在 php.ini 中将执行时间限制设置为 6000,并且添加更多相同的没有帮助。 设置时间限制为0意味着无限的执行时间

以上是关于Wordpress 导入器错误:最大执行时间 60 秒的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:wp-db.php 的最大执行时间超过了 60 秒

超过 60 秒的最大执行时间错误 [重复]

WordPress 数据库错误 命令不同步;

WORDPRESS : cURL 错误 60: SSL 证书

致命错误:第 1610 行的 C:\xampp\htdocs\wordpress\wp-includes\class-http.php 中的最大执行时间超过 30 秒

没有解决方案适用于我的 wamp 服务器错误:致命错误:第 239 行的 D\...\class-wp-http-curl.php 中的最大执行时间超过 60 秒