Maximum execution time about to be exceeded как исправить

  • Решение проблемы с помощью ini_set

  • Решение проблемы с помощью php.ini

  • Причина возникновения ошибки Maximum execution time exceeded

Ошибка возникает, когда скрипт выполняется больше определённого в настройках времени. По умолчанию это 30 секунд. Решением проблемы может стать увеличение времени исполнения скриптов php.

Решение проблемы с помощью ini_set

Можно прописать в начале кода PHP конструкцию, которая увеличит время исполнения скрипта до 600 секунд:

ini_set('max_execution_time', 600);

В WordPress её можно определить в файле wp-config.php в корне сайта после определения константы define( 'WP_DEBUG', false );

Решение проблемы с помощью php.ini

  1. <?=phpinfo();?>

    С помощью phpinfo находим расположение php.ini. Например, он может располагаться тут: /etc/php5/fpm/php.ini
    phpinfo php.ini

  2. В php.ini находим директиву max_execution_time
  3. Вносим изменения в неё, увеличивая время исполнения до 600 секунд:
    max_execution_time = 600
  4. Перезапускаем PHP консольной командой в SSH для PHP-FPM:
    service php5-fpm restart

    Или для Apache:

    service apache2 restart

Проблема часто заключается в неверно построенной архитектуре кода.

  • Импорт одномоментно большого количества данных. Увеличение max_execution_time в данном случае оправданно, однако, позаботьтесь, чтобы NGINX не возвращал 504 ошибку, не дождавшись ответа от бекенда в отведённый срок.
  • Проблемой также может послужить зацикленная рекурсия на основе While.
  • Либо же долгое исполнение может быть из-за долгого получения данных из базы данных.
  • Также, проблемой может служить слишком долгое ожидание ответа от внешнего ресурса, скажем, через file_get_contents

Загрузка…

Почему возникает ошибка

Ошибка maximum execution time появляется когда скрипт работает дольше, чем разрешено в настройках PHP:

<?php
// Устанавливаем максимальное время (1 секунда)
set_time_limit(1);

// Ждём 2 секунды и получаем ошибку
sleep(2);

Результатом работы этого скрипта будет ошибка:

Fatal error:
Maximum execution time of 1 second exceeded in
D:ProgramsOpenServerdomainstest.localindex.php on line 6

Почему скрипт чаще всего выполняется медленно:

  • Слишком много вычислений в коде, которые сервер не может выполнить за разрешённое время
  • Медленные SQL-запросы
  • Медленные внешние запросы к другим сайтам/веб-сервисам
  • Бесконечные циклы или рекурсия

Как исправить ошибку

В каждой ситуации решение индивидуальное. Часто проблему можно решить просто увеличив максимально разрешённое время работы скрипта (разрешено не на всех хостингах).

Увеличение времени работы скрипта в .htaccess (указывается в секундах):

php_value max_execution_time 300

В php.ini:

max_execution_time = 300;

Либо напрямую в PHP:

ini_set('max_execution_time', 300);

// Или так
set_time_limit(300);

У функции set_time_limit есть одна особенность – она начинает отсчёт времени работы скрипта с нуля.

Т.е. если время работы изначально было 10 секунд, а через 5 секунд был выполнен код set_time_limit(20);, то в итоге скрипт будет выполняться не более 25 секунд.

Отлов и обработка ошибки

Хоть ошибка и является фатальной, её появление можно отловить и обработать с помощью функции register_shutdown_function():

<?php
// Отключаем вывод текста ошибки на экран
ini_set('display_errors', 0);

register_shutdown_function(function() {

	$e = error_get_last();

	if($e and $e['type'] == 1) {
		echo 'Фатальная ошибка!';
	}
});

// Устанавливаем макс время - 1 секунду
set_time_limit(1);

// Ждём 2 секунды и получаем ошибку
sleep(2);

При выполнении этого кода на экран выведется сообщение Фатальная ошибка!.

Единственный нюанс – условие $e[‘type’] == 1 отработает для любых фатальных ошибок, а не только для Maximum execution time.

Получали ли вы когда-либо сообщение об ошибке в WordPress следующего вида: «Fatal Error Maximum Execution Time Exceeded»? Обычно оно появляется, когда вы пытаетесь выполнить задачу, связанную с обновлением темы или плагина в WordPress.

Не стоит беспокоиться. Многие пользователи WordPress сталкивались с подобной ошибкой при выполнении разных задач, обновлении WordPress или плагинов.

Ошибка довольно популярна, и исправить ее несложно. В этой статье мы покажем вам два простых способа, связанных с ее устранением, а также предоставим вам детальные пошаговые инструкции.

Но давайте сначала выясним, что является причиной этой ошибки.

Содержание

  1. Fatal Error Maximum Execution Time Exceeded – откуда берется эта ошибка?
  2. Как справиться с данной ошибкой
  3. Способ 1. Использование плагина WP Maximum Execution Time Exceeded
  4. Способ 2. Редактирование .htaccess
  5. Дополнительные шаги: отключение тем и плагинов.

Fatal Error Maximum Execution Time Exceeded – откуда берется эта ошибка?

Чтобы понять, в чем заключается суть этой ошибки, необходимо знать, как вообще работает WordPress.

WordPress основан на PHP и использует некоторые PHP-скрипты для выполнения определенных функций в системе. К примеру, при обновлении WordPress до новой версии система запускает скрипты для выполнения таких функций, как обновление баз данных.

Иногда выполнение этих скриптов может занять слишком много времени. К примеру, такое возможно, когда вы пытаетесь обновить WordPress в пиковые часы в плане трафика. Это часто ведет к повышенному использованию серверных ресурсов.

Чтобы сайты не потребляли слишком много ресурсов, провайдеры устанавливают ограничение по продолжительности выполнения скрипта. Если лимит времени будет превышен, то в таком случае вы получите ошибку «Fatal Error Maximum Execution Time Exceeded».

Как справиться с данной ошибкой

Вы можете исправить эту ошибку двумя простыми способами. Первый включает в себя использование плагина, второй основан на редактировании файла .htaccess в каталоге WordPress на сервере.

Мы рекомендуем вам использовать второй метод. Главным образом потому, что плагины не являются самым надежным вариантом – они нередко ведут к конфликтам и проблемам.

Если вы новичок и не знаете, как правильно редактировать файлы WordPress, лучше всего воспользуйтесь плагином.

Примечание: всегда делайте бэкапы перед внесением любых изменений в системные файлы.

Способ 1. Использование плагина WP Maximum Execution Time Exceeded

Простейший способ решения проблемы – применение плагина WP Maximum Execution Time Exceeded. С его помощью можно мгновенно исправить эту ошибку путем нескольких кликов мышью. Вам не придется вручную редактировать какие-либо файлы WordPress.

Как только вы активируете плагин, он автоматически увеличит время исполнения скриптов до 5 минут.

Способ 2. Редактирование .htaccess

Этот метод предполагает ручное редактирование файла .htaccess, расположенного на сервере.

Вы можете использовать клиентское приложение для FTP-доступа к вашему серверу. Мы покажем вам, как найти .htaccess в CPanel.

Шаг 1. Заходим в CPanel.

Вы можете получить доступ к CPanel через ваш хостинг-аккаунт. Либо вы можете получить прямой доступ к CPanel, введя URL вида yourwebsite.com/cpanel.

Вход в CPanel возможен с теми данными, которые передавал вам веб-хостинг. Проверьте свою почту, чтобы найти эти данные.

Шаг 2. Переходим к файлу .htaccess.

Как только вы будете в CPanel, откройте File Manager и перейдите в папку public.html. В ней находятся все файлы, связанные с вашим сайтом.

Здесь вы найдете .htaccess.

Шаг 3. Редактируем .htaccess.

Сначала на всякий случай делаем бэкап .htaccess. Затем открываем .htaccess и выбираем Edit.

Добавляем в самый низ файла следующий код.

php_value max_execution_time 300

Жмем Save Changes.

В итоге максимальное время исполнения скриптов будет равняться 5 минутам.

Дополнительные шаги: отключение тем и плагинов.

Если вы все еще получаете сообщение об этой ошибке даже после выполнения всех предыдущих методов, вам нужно проверить свои плагины и темы.

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

Если это не работает, попробуйте перевести вашу текущую тему на стандартную тему WordPress. Бывает, что ошибка вызвана конфликтами с темой.

Этот тип ошибок очень популярен для администрируемых хостингов WordPress и VPS. Если ошибка продолжает появляться, рассмотрите возможность переноса вашего сайта к другому хостинг-провайдеру.

Источник: wpkube.com

Как исправить ошибку Maximum Execution Time Exceeded в WordPress

Вы столкнулись с фатальной ошибкой Fatal Error: Maximum Execution Time Exceeded (Превышено максимальное время выполнения) при использовании сайта на WordPress? Эта ошибка означает, что скрипт PHP, который вы запустили, затратил на свое выполнение больше времени, чем позволяет лимит и из-за этого он был остановлен.

Исправление этой ошибки относительно простое, но для новичков знакомство с этой ошибкой может быть довольно неприятным моментом. В сегодняшней статье мы покажем вам, как решить проблему Maximum Execution Time Exceeded на своем сайте с помощью нескольких методов.

Почему возникает превышение максимального времени выполнения?

WordPress написан в основном на языке программирования PHP. Чтобы защитить веб-серверы от злоупотреблений, устанавливается лимит времени, который ограничивает сроки выполнения PHP-скрипта. На некоторых хостингах это значение устанавливают на более высоком уровне, в то время как на других, возможно, это значение имеет максимально низкий уровень. Когда скрипт достигает максимального предела времени выполнения, это приводит к превышению ограничения и, соответственно, сервер аварийно прекращает выполнять данный скрипт.

Способы исправления ошибки Fatal Error: Maximum Execution Time Exceeded

Вы можете исправить эту ошибку несколькими способами. Первые три способа подразумевают ручное редактирование файлов, которые влияют на настройки сервера, а четвертый – редактирование настроек сервера через Панель управления сервера.

ВАЖНО! Перед редактированием файлов на сервере, убедитесь, что вы создали резервную копию этих файлов.

Способ №1. Редактирование файла .htaccess

Подключитесь к своему сайту с помощью любого FTP-клиента (например, FileZilla, TotalCommander и др.).

Файл .htaccess находится в корне сайта, т.е., в той же папке, что и папки /wp-content/ и /wp-admin/.

Откройте этот файл и добавьте в него небольшую строку:

php_value max_execution_time 300

Этот код устанавливает для максимального времени выполнения значение в 300 секунд (5 минут). Если после этого вы все еще получаете ошибку, попробуйте увеличить значение до 600.

Способ №2. Редактирование файла wp-config.php

Добавьте в файл wp-config.php в корне сайта следующую строку (если в файле уже есть такая строка – просто измените старое значение):

set_time_limit(300);

Этот код также повышает значение для максимального времени выполнения скрипта до 300 секунд (5 минут).

Способ №3. Редактирование файла php.ini

Добавьте в файл php.ini, который находится в корне сайта, следующий код:

max_execution_time = 300

Данная настройка также влияет на максимальное время выполнения скрипта.

Способ №4. Изменение настроек через Панель администрирования сервера

Данный способ подойдет не всем, поскольку не на всех серверах есть возможность изменять настройки сервера с помощью Панели администрирования сервера.

Если вы используете cPanel, например, вы можете увеличить max_execution_time непосредственно через Панель управления сервером, не подключаясь к сайту по FTP.

  • Для этого перейдите в раздел «Выбор PHP-версии» (Select PHP Version).
  • Потом нажмите ссылку «Переключиться на опции PHP» (Switch To PHP Options).
  • Увеличьте значение по умолчанию, которое вы видите в строке max_execution_time. Обычно по умолчанию установлено 30 секунд, поэтому увеличьте значение минимум до 300 секунд. После этого нажмите кнопку «Применить» (Apply), чтобы сохранить изменения.

Вот и все, вы успешно увеличили лимит max_execution_time для своего сайта на WordPress.

Краткий вывод

Из сегодняшней статьи вы узнали 4 способа увеличить max_execution_time для WordPress и исправить фатальную ошибку: Превышено максимальное время выполнения (Fatal Error: Maximum Execution Time Exceeded).

Если ни один из способов вам не помог, вы должны обратиться в службу поддержки своего хостинг-провайдера.



  • 8465
  • Опубликовано 21/08/2018



  • Wordpress – как сделать

Опубликовано: ADv

Дата 07.10.2014

в рубрике Ошибки

Комментировать

Недавно один из наших читателей обратился с проблемой: он не мог обновить свою тему WordPress из-за ошибки Fatal Error: Maximum Execution Time Exceeded in WordPress. Устранение этой ошибки достаточно простое, однако некоторых новичков это может озадачить. В сегодняшней статье мы покажем вам как исправить fatal error: maximum execution time exceeded in WordPress.

error-maximum-execution-time[1]

Почему возникает ошибка Maximum Execution Time Exceeded Error?

WordPress написан в основном на языке программирования PHP. Для защиты веб серверов, устанавливает лимит времени на выполнение скриптов PHP. Некоторые хостинг-провайдеры установили этому лимиту высокое значение, в то время как остальные — занизили его. Когда скрипт достигает лимита максимального использования времени, возникает ошибка maximum execution time exceeded error.

Исправление Maximum Execution Time Exceeded Error

Существует два способа исправления этой ошибки. Первый способ — это исправлении вручную путем редактирования вашего файла .htaccess, а второй способ позволяет вам сделать то же самое, но с помощью плагина.

Способ 1: Редактирование файла .htaccess вручную

Просто подключитесь к вашему сайту с помощью FTP клиента.

Ваш файл .htaccess расположен в той же папке, что и папки /wp-content/ и /wp-admin/. Если вы не можете его найти, тогда обратите внимание на нашу статью о том, почему вы не можете найти файл .htaccess и как отыскать его.

Далее, добавьте эту строку в ваш файл .htaccess:

php_value max_execution_time 300

Этот код просто устанавливает значение для лимита максимального использования времени в значение 300 секунд (5 минут). Если вы все равно получаете эту ошибку, то попробуйте увеличить значение до 600.

Если вам больше подходит этот способ, тогда посмотрите и на наиболее полезные трюки с .htaccess для WordPress.

Способ 2: Использование плагина

Если вы не хотите править файл .htaccess вручную, то вы можете установить и активировать плагин WP Maximum Execution Time Exceeded.

Вот и все. Плагин работает «из коробки» и увеличивает лимит максимального использования времени в значение 300 секунд.

Мы надеемся, что эта статья помогла вам исправить ошибку fatal error: maximum execution time exceeded в WordPress.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

Rating: 5.0/5 (1 vote cast)

Теги: htaccess wordpress лимит ошибка плагин

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации.
Skype: advokat_b

Добавить комментарий