Фатальна помилка: перевищено максимальний час виконання 300 секунд


89

Я постійно отримую цю помилку PHP:

Фатальна помилка: перевищено максимальний час виконання 300 секунд

Я спробував встановити мої max_execution_timeі мої max_input_timeналаштування в php.ini (як Apache і АВН) , щоб 0, -1і 4000секунди кожен.

І я все ще отримую повідомлення про помилку:

Фатальна помилка: перевищено максимальний час виконання 300 секунд

Крім того, мій сценарій працює понад 300 секунд, перш ніж я отримаю це повідомлення

Я запускаю сценарій через командний рядок.

Я також перевірив свій, phpinfo()так що подивіться, яким php.iniя користуюся.

Ще цікавіше, я спробував налаштування max_execution_timeта max_input_timeналаштування на 5 секунд, і мій сценарій буде працювати за 5 секунд, перш ніж я отримаю:

Фатальна помилка: перевищено максимальний час виконання 300 секунд


Яке налаштування сервера ви використовуєте?
Пекка,

1
Це настільки дивно, що у мене така сама проблема з apache 2.4.18 та php 7 ... Використання PHPMyAdmin для імпорту sql .. phpinfo (); повідомляє інший час .. Спробую налаштування ini, я здогадуюсь :(
Michael Fever

та сама проблема, я намагаюся встановити set_time_limit (3603); ini_set ('max_execution_time', 3604); але обидва не мають ефекту, максимальний час виконання досі становить 360.
Infor Mat

Відповіді:


68

На початку вашого сценарію ви можете додати.

ini_set('MAX_EXECUTION_TIME', '-1');

2
додайте його у верхній частині вашого php-файлу
Tules

2
Цей рядок коду скасує обмеження максимального часу виконання коду, що дозволить коду php працювати вічно (теоретично).
Technotronic

2
в якому сценарії?
Сагар Кодте,

Або set_time_limit(0);= те саме.
Íhor Mé

99

Якщо ви використовуєте WAMP, перейдіть до:

Збільште max_execution_timeв php.iniпотім перейдіть до

C:\wamp\apps\phpmyadmin3.4.10.1\libraries (змінити шлях відповідно до вашої установки)

відкрити config.default.phpта змінити значення $cfg['ExecTimeLimit']на 0:

$cfg['ExecTimeLimit'] = 0;

Це вирішить проблему з імпортом PhpMyAdmin.


@Vipin, ти мені допоміг, особливо те, що config.default.php ;-)
Rishi Kulshreshtha

Раді допомогти! Вітаємо :)
Віпін Дубей

дякую, після годин та годин розчарувань, намагаючись оновити 500 МБ БД до нової версії moodle ...... я маю успіх. Зокрема, moodle 2.2 - 2.6.
jamesTheProgrammer

2
Дякую за цю відповідь! Вирішив мою проблему, зрозумівши, що встановлення максимального часу виконання в php.ini було недостатньо!
Rimble

1
config.default.phpдуже чітко говорить про те, щоб не редагувати його, кажучи нам config.inc.phpзамінити. Я намагався його знайти, але не зміг, тому зробив своє і додав <?php $cfg['ExecTimeLimit'] = 3000; ?>. Це нічого не зробило. Я вирішив спробувати це зробити, config.default.phpі це спрацювало !! Як ми повинні зробити config.inc.phpроботу?!?
BillyNair

67

Користувачі Xampp

  1. Йти до xampp\phpMyAdmin\
  2. Відкрийте config.inc.php
  3. Шукати $cfg['ExecTimeLimit'] = 300;
  4. Встановіть більше значення або змініть значення 0 на необмежений
  5. Якщо не знайдено, додайте $cfg['ExecTimeLimit'] = 0;(або більше значення)
  6. Збережіть файл і перезапустіть сервер

8
Це буквально єдине, що мені вдалося. Тож дякую за розміщення. У моїй установці $ cfg ['ExecTimeLimit'] = 300; не існувало в config.inc.php, тому я додав його туди, замість того, щоб змінювати значення в config.default.php - є досить велике повідомлення про те, щоб не торкатися коду у цьому файлі;)
Ян

4
дякую за виділення перезапустіть сервер . найважливіший момент, який можна забути.
Pradeep Kumar Prabaharan

4
У файлі config.default.php є примітка з написом "Ні !! Не редагувати". Я додав $ cfg ['ExecTimeLimit'] = 0; до мого файлу config.inc.php, оскільки він не існував і, здавалося, працював.
brandozz

1
ця публікація врятувала мій день і допомогла мені вдруге !!! як я можу плюс один через 3 місяці ???
saber tabatabaee yazdi

24

Я зіткнувся з подібною ситуацією, і виявляється, що Codeigniter (фреймворк PHP, який я використовував) насправді встановлює свій власний часовий ліміт:

У системі / core / Codeigniter.php, рядок 106 у версії 2.1.3 з'являється таке:

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

Оскільки іншого способу уникнути зміни основного файлу не було, я видалив його, щоб дозволити конфігурацію через php.ini, а також надати нескінченний максимальний час виконання запиту CLI.

Однак рекомендую записати цю зміну десь у разі майбутніх оновлень версії CI.


7
ОХ. МОЙ ДОБРОТА. Я не можу в це повірити. Чому в кривавому світі вони обмежуватимуть час страти поверх усіх інших обмежень, які вже існують? Я витратив на це години. Дякуємо за розміщення.
crazy4jesus

1
Це неймовірно. Прокоментував рядок і працює! Чому CI перезаписує стандартний PHP за замовчуванням, а не надає документацію щодо нього ?!
Phil Cross

Якщо ви читаєте це і використовуєте ExpressionEngine (який побудований на CodeIgniter) ... Ну - вгадайте, що - EE перевизначає заміну CI! Вам потрібно буде відредагувати обидва /system/codeigniter/system/core/Codeigniter.php рядок 106, І /system/expressionengine/libraries/Core.php, рядок 64. Це було весело три години мого життя, виявивши це .. .
Джек

@PhilCross, якщо ти знаєш функцію, яка повинна виконувати більше часу, ти можеш скористатися пропозицією Джесс і помістити set_time_limit(0);всередину цієї функції. Вам не потрібно міняти ядро: ця інструкція скине обмеження часу, тому вам не потрібно турбуватися про інші рядки в ядрі або в інших пакетах під час запуску цієї конкретної функції.
Armfoot


6

Це правильна відповідь:

йти до

c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php

знайти і встановити

$cfg['ExecTimeLimit'] = 0;

перезапустити всі служби і готово.


Прекрасна відповідь, Thank's @llioor
kach

5

перейдіть до xampp / phpmyadmin / libraries / config.default.php

та внесіть такі зміни

from  $cfg['ExecTimeLimit'] = ’300′;
to  $cfg['ExecTimeLimit'] = ’0′;

3

Для користувачів Xampp

1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.

1

Час виконання CLI за замовчуванням PHP нескінченний.

Це встановлює максимальний час у секундах, коли сценарію дозволяється запускатись до того, як його завершить парсер. Це допомагає запобігти зв’язуванню сервера з погано написаними сценаріями. Параметр за замовчуванням - 30. При запуску PHP із командного рядка налаштування за замовчуванням - 0.

http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time

Перевірте, чи запускаєте ви PHP у безпечному режимі, оскільки він ігнорує всі налаштування exec часу, коли це ввімкнено.


1

Для Local AppServ

Перейдіть до C: \ AppServ \ www \ phpMyAdmin \ libraries \ config.default.php

Знайдіть $cfg['ExecTimeLimit']і встановіть значення 0.

Так це буде виглядати

$cfg['ExecTimeLimit'] = 0;

1

Якщо ви використовуєте xampp і використовуєте phpMyadmin для імпорту великих файлів sql, і у вас збільшено час max_execution, максимальний ліміт завантаження файлів і все необхідне. Якщо жодна з наведених вище відповідей не працює, ви приходите сюди

Зайдіть у свою папку xampp, у моєму випадку ось відносний шлях до файлу, який мені потрібно змінити: C: \ xampp \ phpMyAdmin \ libraries \ config.default.php

/** * maximum execution time in seconds (0 for no limit) * * @global integer $cfg['ExecTimeLimit'] * by defautlt 300 is the value * change it to 0 for unlimited * time is seconds * Line 709 for me */ $cfg['ExecTimeLimit'] = 0;


працює $ cfg ['ExecTimeLimit'] = 0; . спасибі
MindRoasterMir

0

КОРИСТУВАЧІ ВАМПУ:

1) Перейдіть до C: \ wamp \ apps \ phpmyadmin

2) Відкрийте config.inc

3) Додайте $ cfg ['ExecTimeLimit'] = '3600 ′; до файлу.

4) Збережіть файл і перезапустіть сервер.

Цей файл замінює php.ini і буде працювати для вас!


0

У моєму випадку, коли я зіткнувся з цією помилкою у Phpmyadmin, я спробував MySQL-Front та успішно імпортував свою БД.

Примітка: Ви все ще можете використовувати запропоновані рішення під цим питанням, щоб вирішити свою проблему в Phpmyadmin.


Hier gibt es nichts zu sehen ... :-)
rahul

0

Якщо наведені вище відповіді не допоможуть, спробуйте перевірити свій код ,, На мій досвід, наявність нескінченного циклу також спричинить цю проблему. Перевірте своє твердження else if.


0

У Codeignitor версії 3.0.x система / ядро ​​/ Codeigniter.php не містить часового обмеження, а також вставки

ini_set('MAX_EXECUTION_TIME', -1);  

не буде працювати, оскільки codeignitor замінить це за допомогою власної функції set_time_limit (). Тож або вам доведеться видалити цю функцію з codeignitor, або просто ви можете вставити

set_time_limit('1000');

на початку php-файлу, якщо ви хочете змінити це на 1000 секунд. Встановіть час на 0 (нуль), якщо ви хочете запускати його скільки завгодно довго.


0

На Xampp в php.ini ви також повинні перевірити mysql.connect_timeout. Так, наприклад, змініть його на:

mysql.connect_timeout = 3600

Цей час завжди буде рахуватися в секундах (так 1 година в моєму прикладі)


0

Користувачі MAMP редагування php.ini вирішує це - є рядок:

max_execution_time = 30; Максимальний час виконання кожного сценарію в секундах

встановивши це на більш високе значення спрацювало.

файл знаходиться у php / php5.6.25 / conf / php.ini (очевидно, що вам потрібно змочити файл для використовуваної вами версії php - це можна дізнатись із налаштувань MAMP.


-1

Ви можете встановити обмеження часу:

ini_set('max_execution_time', 1000000000000000);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.