首页 > 解决方案 > PHP 脚本在 max_execution_time 之后没有中止(XAMPP,XDebug)

问题描述

我有一个无限循环的 PHP 脚本。当我使用 AJAX 或直接在浏览器中运行此脚本时,服务器正在尝试执行此脚本。问题是:30 秒后服务器仍在执行脚本。没有“超过最大执行时间”错误。在 php.ini 文件中 max_execution_time 设置为 30。由于这个问题,服务器不再可用。我无法通过 AJAX 运行任何其他脚本。我必须在 XAMPP 中重新启动 Apache。 为什么服务器在 30 秒后没有中止? 我正在使用 XAMPP 和 XDebug。

// 更新 1: PHP 脚本:

<?php
while(true)
echo 'test';

我知道这段代码没有意义。我只是想知道,为什么服务器在 30 秒后没有中止执行......

**//更新 2:** 我关闭了 XDebug,并将代码更改为:

<?php
$x = 0;
while(true)
   $x += 1;

现在可以了:服务器在 30 秒后中止脚本,出现“最大执行时间”错误。但是,服务器仍然不能使用“echo”语句中止脚本(即使禁用了 XDebug)。同样的问题是当我尝试在没有“echo”但启用 XDebug 的情况下执行脚本时。所以,当我使用“echo”或“XDebug”时,这似乎是个问题。仅当没有“echo”且 XDebug 被禁用时,该脚本才会正确中止。

标签: phpajaxxamppxdebug

解决方案


我对我的情况进行了更改:xampp\phpMyAdmin\libraries\config.default.php

搜索:`$cfg['ExecTimeLimit']

您可以将右手值更改为任何更高的值,例如“6000”。它对我有用。


推荐阅读