我正在尝试使用默认的unit test xml插件导入Wordpress主题wordpress importer。我收到以下错误:
致命错误: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),结果出现同样的丑陋错误。
任何想法为什么会发生这种情况以及它如何得到帮助?
答案 0 :(得分:19)
我找到了这个错误发生的确切原因,所以我会尝试为自己的问题提供答案。
在wp-includes / deprecated.php中有一个名为wp_get_http的函数,它仍然被wordpress importer插件使用(在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分钟的时间来获取导入期间可能需要的所有远程文件。可能这不是最安全的解决方案,但它对我有用。
答案 1 :(得分:3)
您可以将其添加到php.ini
中参数或者set_time_limit(0);
它肯定会解决问题。
答案 2 :(得分:0)
这是因为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
答案 3 :(得分:0)
将此添加到.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');
答案 4 :(得分:0)
只需转到wp-config文件并粘贴 set_time_limit(60); ,或者只是将括号中的数字更改为您想要的选项。
答案 5 :(得分:0)
安装自定义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
然后保存这些设置我确定你得到你的解决方案谢谢
如果还是没有解决
与您的房东交谈。