Неустранимая ошибка: превышено максимальное время выполнения 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 секунд

dez
источник
Какой у вас сервер?
Пекка
1
Это настолько странно, что у меня такая же проблема с apache 2.4.18 и php 7 ... Использование PHPMyAdmin для импорта sql .. phpinfo (); сообщает разное время .. Думаю, попробую настройки ini :(
Майкл Февер
та же проблема, пытаюсь установить set_time_limit (3603); ini_set ('max_execution_time', 3604); но оба не действуют, максимальное время выполнения по-прежнему составляет 360.
Infor Mat

Ответы:

68

В начале вашего скрипта вы можете добавить.

ini_set('MAX_EXECUTION_TIME', '-1');
Tules
источник
2
добавьте его в самый верх вашего php файла
Tules
2
Эта строка кода снимает ограничение на максимальное время выполнения кода, позволяя PHP-коду работать вечно (теоретически).
Technotronic
2
в каком скрипте?
Sagar Kodte
Или 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 ;-)
Риши Кулшрешта
Рад был помочь ! Ура :)
Vipin Dubey
спасибо, после многих часов разочарования, пытаясь обновить БД на 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
спасибо за выделение перезагрузки сервера . самый важный забываемый момент.
Прадип Кумар Прабахаран 01
4
В файле config.default.php есть примечание «Нет !! Не редактировать». Я добавил $ cfg ['ExecTimeLimit'] = 0; в мой файл config.inc.php, так как он не существует и, похоже, работает.
brandozz 08
1
этот пост спас мне день и помог мне во второй раз !!! как я могу добавить один через 3 месяца ???
saber tabatabaee yazdi
24

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

В system / 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.

Xiankai
источник
7
ОЙ. МОЙ. ДОБРОСТЬ. Я не могу в это поверить. Почему в этом кровавом мире они ограничивают время выполнения поверх всех других ограничений времени выполнения, которые уже существуют? Я потратил на это часы. Спасибо за публикацию.
fool4jesus 04
1
Это невероятно. Закомментировал строку и работает! Почему CI перезаписывает дефолтный PHP по умолчанию и не предоставляет по нему документацию ?!
Фил Кросс
Если вы читаете это и используете ExpressionEngine (который построен на CodeIgniter) ... Угадайте, что - EE отменяет переопределение CI! Вам нужно будет отредактировать как /system/codeigniter/system/core/Codeigniter.php строку 106, так и /system/expressionengine/libraries/Core.php, строку 64. Это были забавные три часа моей жизни, когда я обнаружил, что .. .
Джек
@PhilCross, если вы знаете функцию, которая должна выполняться больше времени, вы можете использовать предложение Джесс и поместить его set_time_limit(0);внутри этой функции. Вам не нужно менять ядро: эта инструкция сбросит ограничение по времени, поэтому вам не нужно беспокоиться о других строках в ядре или в других пакетах при выполнении этой конкретной функции.
Armfoot
9

Попробуйте в своем скрипте что-то вроде следующего:

set_time_limit(1200);
Дарт Эгрегиус
источник
3
set_time_limit(0);заставляет ваш скрипт работать вечно.
Jonathon
23
set_time_limit(0); позволяет вашему скрипту работать вечно.
Джесс Телфорд
6

Это правильный ответ:

перейти к

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

найти и установить

$cfg['ExecTimeLimit'] = 0;

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

llioor
источник
Идеальный ответ, 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

Для локального 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 файл system / core / 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 час).

Andymnc
источник
0

MAMP USERS редактирование php.ini решает эту проблему - есть строка:

max_execution_time = 30; Максимальное время выполнения каждого скрипта в секундах

установка более высокого значения сработала.

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

Джереми Янг
источник
-1

Вы можете установить ограничение по времени:

ini_set('max_execution_time', 1000000000000000);
binhhoang18
источник