php - 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 被禁用时,该脚本才会正确中止。
解决方案
我对我的情况进行了更改:xampp\phpMyAdmin\libraries\config.default.php
搜索:`$cfg['ExecTimeLimit']
您可以将右手值更改为任何更高的值,例如“6000”。它对我有用。
推荐阅读
- ubuntu - 用 Sed 用回车替换行
- python - 迭代合并多个海量数据帧而不会耗尽内存
- sql - SQL Server中随机选择8行数据,需要优化
- powershell - 作为后台进程在 Powershell 中有效地压缩档案
- android - [Kotlin]在目录中列出文件时,如何仅检索不包括路径的文件名?
- python - 如何比较 Django 中的两个查询集并过滤不完全匹配的查询集?
- android - 为什么我不能在 Android Studio Kotlin 中读/写文本文件
- visual-studio-code - Visual Studio Code:获取 Javascript 对象中的路径
- android - 使用 iframe 在 Ionic 应用程序中访问相机
- node.js - 检查 xstate 机器定义中的 cond 语句