【问题标题】:Wordpress importer error: max execution time 60 secondsWordpress 导入器错误:最大执行时间 60 秒
【发布时间】: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) ,结果同样丑陋。

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

【问题讨论】:

标签: php xml wordpress


【解决方案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意味着无限的执行时间
          猜你喜欢
          • 2023-01-31
          • 2010-11-28
          • 2020-04-29
          • 2018-08-31
          • 2020-03-22
          • 1970-01-01
          • 2016-10-02
          • 1970-01-01
          • 2015-10-17
          相关资源
          最近更新 更多