test.php
<?php
sleep(45);
phpinfo();
执行上述代码后, 47秒后,我得到响应:
max_execution_time 30 | 30
奇怪,但是phpinfo()
是无效的超时值。
sleep(75);phpinfo();
上 ,我在浏览器中收到请求timout错误。
问题:不确定phpinfo()
为什么显示无效值?
PHP Version: 5.6.29
Server API: FPM/FastCGI
php-fpm: active
NGINX_VERSION: 1.11.8; linux
从上面的测试来看,服务器max_execution_time似乎是60秒,但在phpinfo()中却显示了30秒;
答案 0 :(得分:1)
不,完全可以预期。 sleep()是 blocking 调用。在操作系统调度执行线程之前,PHP才知道它已经超时。
尝试:
for ($x=0; $x<30; $x++) sleep(2);
答案 1 :(得分:-1)
<?php
set_time_limit(300)
sleep(45);
phpinfo();
使用set_time_limit()函数设置新的max_execution_time