【问题标题】:phpinfo() showing invalid valuephpinfo() 显示无效值
【发布时间】:2018-12-12 15:09:13
【问题描述】:

test.php

<?php
sleep(45);
phpinfo();

执行上述代码后, 47 秒后,我得到了回复:

max_execution_time 30 | 30

奇怪,但是phpinfo() 显示无效的超时值。

sleep(75);phpinfo();61 秒 我在浏览器中收到请求超时错误。

问题:不知道为什么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 秒;

【问题讨论】:

    标签: php nginx webserver phpinfo


    【解决方案1】:

    不,这完全是意料之中的。 sleep() 正在阻塞调用。 PHP 不知道它已经超时,直到操作系统调度执行线程。

    试试:

    for ($x=0; $x<30; $x++) sleep(2);
    

    【讨论】:

    • for ($x=0; $x&lt;30; $x++) sleep(2); phpinfo(); 导致“504 请求超时”for ($x=0; $x&lt;27; $x++) sleep(2);phpinfo(); 导致 phpinfo() 响应:“max_execution_time=30|30”结论:脚本耗时 56.13 秒响应 & phpinfo() 说每个脚本的 max_execution_time 是 30。
    • 我必须承认:我没想到会这样。
    【解决方案2】:
    <?php
    set_time_limit(300)
    sleep(45);
    phpinfo();
    

    使用 set_time_limit() 函数设置新的 max_execution_time

    【讨论】:

    • 你应该再读一遍这个问题。这不是关于如何设置时间限制。
    猜你喜欢
    • 2015-12-08
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    相关资源
    最近更新 更多