我目前正在尝试增加PHP脚本的最长执行时间,我无法弄清楚为什么Apache总是会在60秒后返回空响应。
我已经增加了PHP的最大执行时间,最大帖子大小和最大上传大小。我已经验证了Tweak设置和Apache设置,以查看是否存在与最大请求时间或超时的最大执行时间相关的内容...无法找到任何内容。
也许问题与内存使用或其他问题有关,但我无法弄明白。
我有第三方模块是Varnish,当我尝试使用Varnish做我的请求时,一切正常。否则,如果我禁用它(它当前被禁用),apache不能给我回复。我是从谷歌Chrome获得的:
未收到任何数据 错误代码:ERR_EMPTY_RESPONSE
PHP脚本就是这个:
<?php
$timeInSeconds = 70;
$start = microtime(true);
$end = $start + $timeInSeconds;
$diff = $end - $start;
echo 'start: '.$start.'<br />';
while ($start < $end)
{
$start = microtime(true);
}
echo 'end: '.$end.'<br />';
echo 'difference: '.$diff;
使用命令行,一切正常。
答案 0 :(得分:0)
转到 WHM&gt;&gt;服务经理&gt;&gt; Apache配置&gt;&gt;全局配置(我不知道正确的菜单名称,因为我的WHM是葡萄牙语)并更改了超时值。
答案 1 :(得分:0)
您可以使用以下脚本进行检查吗? 这将在stil运行时将输出缓冲区刷新到屏幕
<?php
$timeInSeconds = 70;
$start = microtime(true);
$end = $start + $timeInSeconds;
$diff = $end - $start;
echo 'start: '.$start.'<br />';
while ($start < $end)
{
$start = microtime(true);
echo $start;
ob_flush();
flush();
sleep(1);
}
echo 'end: '.$end.'<br />';
echo 'difference: '.$diff;
有关flush的更多信息: http://php.net/manual/en/function.flush.php