即使它小於其他限制,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