【发布时间】:2019-08-10 00:15:24
【问题描述】:
我有一个无限循环的 PHP 脚本。 当我使用 AJAX 或直接在浏览器中运行此脚本时,服务器正在尝试执行此脚本。问题是:30 秒后服务器仍在执行脚本。没有“超过最大执行时间” 错误。在 php.ini 文件中,max_execution_time 设置为 30。由于这个问题,服务器不再可用。我无法通过 AJAX 运行任何其他脚本。我必须在 XAMPP 中重新启动 Apache。 为什么服务器在 30 秒后没有中止? 我正在使用 XAMPP 和 XDebug。
// 更新 1: PHP 脚本:
<?php
while(true)
echo 'test';
我知道这段代码没有意义。我只是想知道,为什么服务器在 30 秒后没有中止执行......
**//UPDATE 2:**我关闭了XDebug,并将代码更改为:
<?php
$x = 0;
while(true)
$x += 1;
现在可以了:服务器在 30 秒后中止脚本,出现“最大执行时间”错误。 但是,服务器仍然不能使用“echo”语句中止脚本(即使禁用了 XDebug)。同样的问题是当我尝试在没有“echo”但启用 XDebug 的情况下执行脚本时。 所以,当我使用“echo”或“XDebug”时,这似乎是个问题。 仅当没有“echo”且 XDebug 被禁用时,脚本才会正确中止。
【问题讨论】:
-
向我们展示有问题的代码对我们很有帮助。
-
完成。但我认为可能是 XAMPP 或 XDebug 问题。
-
如果你运行这个小脚本,你会得到什么价值:
-
阅读下面的答案...