即使它小于其他限制,PHP set_time_limit也不起作用。 例如,下面的代码将运行到结束:Nginx + php5-fpm不尊重set_time_limit
<?php
set_time_limit(5);
sleep(10);
echo "Did not work!";
?>
我知道request_terminate_timeout
和fastcgi_read_timeout
,但这些都不是在这种情况下,相关的。
我该如何让nginx + php5-fpm尊重我设定的时间限制?
我有两个非常默认configurigation:
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。
因为看起来你是对的。用'while(true);'它按预期工作:) – Kristian