尽管正确设置了php.ini,但最大执行时间错误

时间:2014-09-05 06:44:49

标签: php wordpress apache

过去一小时我一直在努力。我在Windows机器上使用WAMP本地服务器,所以一切都在我的控制之下。尝试导入Wordpress xml文件时,我得到最大执行时间60秒错误。

我已在php.ini:

中设置了这些值
max_execution_time = 1200
memory_limit = 512M
max_input_time = -1

I have also edited my wp-config file : set_time_limit(0);

我做了更改后重新启动了服务器。我仍然得到错误

) Fatal error: Maximum execution time of 60 seconds exceeded in C:\wamp\www\xxa\wp-includes\wp-db.php on line 1285

由于 艾哈迈尔

3 个答案:

答案 0 :(得分:3)

这必须与硬编码的max_execution_time设置为60有关。

我对WordPress导入器有同样的问题。原来是因为@set_time_limit( 60 )文件中的硬编码wp-includes/functions.php

function wp_get_http( $url, $file_path = false, $red = 1 ) { @set_time_limit( 60 );

我评论了set_time_limit( 60 )电话,之后工作正常:

//@set_time_limit( 60 );

答案 1 :(得分:0)

当插件执行的初始检查时间超过30秒时,可能会出现此问题。

请尝试:

  1. 调整wp-config.php: 参数或者set_time_limit(60);
  2. 重要 - 如果您在wp-config.php中进行更改,请在“/ *全部上方添加此行,停止编辑!快乐的博客。 * /“评论。

    1. 调整WordPress安装的/.htaccess文件 php_value max_execution_time 60

    2. 调整php.ini文件 max_execution_time = 60;

    3. 最好在wp-config.php文件中进行更改。

      如果能解决问题,请告诉我。

      由于

答案 2 :(得分:0)

我必须自己测试register_shutdown_function() - 我并不认为它会运行。毕竟,一旦没有更多的内存或执行时间已经过去,用户功能如何运行?令我惊讶的是,即使在OOM情况下,或者在执行时间已经过时,关闭功能也会运行。概念证明: 测试内存限制:

<?php
function asdf() { echo "omg\n"; }
register_shutdown_function('asdf');

ini_set('memory_limit', '1000');

$x = '';
while(true) {
 $x .= 'lkajsdlfkjasldkfjlaskdfjasldkfj';
}

输出:

PHP Fatal error:  Allowed memory size of 262144 bytes exhausted (tried to allocate 169540 bytes) in /home/scratch.php on line 9
PHP Stack trace:
PHP   1. {main}() /home/scratch.php:0

Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 169540 bytes) in /home/scratch.php on line 9

Call Stack:
    0.0002      81360   1. {main}() /home/scratch.php:0

omg

测试执行时间:

cat scratch.php
<?php
function asdf() { echo "omg\n"; }
register_shutdown_function('asdf');

set_time_limit(1);

while(true) {}

输出:

PHP Fatal error:  Maximum execution time of 1 second exceeded in /home/scratch.php on line 7
PHP Stack trace:
PHP   1. {main}() /home/scratch.php:0

Fatal error: Maximum execution time of 1 second exceeded in /home/scratch.php on line 7

Call Stack:
    0.0002      80200   1. {main}() /home/scratch.php:0

omg

请注意,要在PHP错误输出之前显示您的消息,您必须完全禁用PHP的错误输出。无论如何,这是生产现场的最佳实践。