【发布时间】:2016-06-11 09:49:34
【问题描述】:
PHP set_time_limit 即使小于其他限制也不起作用。 比如下面的代码会运行到最后:
<?php
set_time_limit(5);
sleep(10);
echo "Did not work!";
?>
我知道request_terminate_timeout 和fastcgi_read_timeout,但在这种情况下它们不相关。
如何让 nginx+php5-fpm 尊重我设置的时间限制?
我对两者都有相当多的默认配置:
Nginx:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
PHP5-FPM:
Default config, no limit specified (request_terminate_timeout = 0)
PHP:
max_execution_time = 30
虽然在php-fpm documentation 中提到了request_terminate_timeout:"This option should be used when the 'max_execution_time' ini option does not stop script execution for some reason."
我仍然想找到解决这个问题的方法......
注意:我使用的是 Ubuntu 14.04、Nginx 1.4.6 和 PHP 5.5。
【问题讨论】: