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 秒
WORDPRESS : cURL 错误 60: SSL 证书
致命错误:第 1610 行的 C:\xampp\htdocs\wordpress\wp-includes\class-http.php 中的最大执行时间超过 30 秒
没有解决方案适用于我的 wamp 服务器错误:致命错误:第 239 行的 D\...\class-wp-http-curl.php 中的最大执行时间超过 60 秒