PHP Script не прерывается после max_execution_time (XAMPP, XDebug) - PullRequest
0 голосов
/ 19 марта 2019

У меня есть PHP-скрипт с бесконечным циклом.Когда я запускаю этот скрипт, используя AJAX или непосредственно в браузере, сервер пытается выполнить этот скрипт.Проблема: Через 30 секунд сервер все еще выполняет сценарий. Нет «Превышено максимальное время выполнения» Ошибка.В файле php.ini для max_execution_time установлено значение 30. Из-за этой проблемы сервер больше не может использоваться .Я не могу запустить любой другой скрипт от AJAX.Я должен перезапустить Apache в XAMPP. Почему сервер не прерывается через 30 секунд? Я использую XAMPP и XDebug.

// ОБНОВЛЕНИЕ 1: PHP Script:

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

Я знаю, что этот код не имеет смысла.Мне просто интересно, почему сервер не прервал выполнение через 30 секунд ...

** // ОБНОВЛЕНИЕ 2: ** Я отключил XDebug и изменил код на:

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

Теперь все в порядке: скрипт прерывания работы сервера через 30 секунд с ошибкой «максимального времени выполнения».Однако сервер все еще не может прервать выполнение сценария с помощью оператора «echo» (даже с отключенным XDebug).Та же проблема возникает, когда я пытаюсь выполнить скрипт без "echo", но с включенным XDebug.Таким образом, это кажется проблемой, когда я использую «echo» или «XDebug».Сценарий корректно прерывается, только если нет «echo» и XDebug отключен.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Готово!Я отключил «Отключение для отладочных подключений PHP» в PHP Storm, и проблема решена.

1 голос
/ 30 марта 2019

Я внес изменения в моем случае в: xampp \ phpMyAdmin \ library \ config.default.php

поиск: `$ cfg ['ExecTimeLimit']

Вы можете изменить Значение правой руки до любого более высокого значения, например «6000».и это работает для меня.

...