Ошибка возникает, когда скрипт выполняется больше определённого в настройках времени. По умолчанию это 30 секунд. Решением проблемы может стать увеличение времени исполнения скриптов php.
Решение проблемы с помощью ini_set
Можно прописать в начале кода PHP конструкцию, которая увеличит время исполнения скрипта до 600 секунд:
ini_set('max_execution_time', 600);
В WordPress её можно определить в файле wp-config.php
в корне сайта после определения константы define( 'WP_DEBUG', false );
Решение проблемы с помощью php.ini
-
<?=phpinfo();?>
С помощью phpinfo находим расположение php.ini. Например, он может располагаться тут:
/etc/php5/fpm/php.ini
- В
php.ini
находим директивуmax_execution_time
- Вносим изменения в неё, увеличивая время исполнения до 600 секунд:
max_execution_time = 600
- Перезапускаем PHP консольной командой в SSH для PHP-FPM:
service php5-fpm restart
Или для Apache:
service apache2 restart
Причина возникновения ошибки Maximum execution time exceeded
Проблема часто заключается в неверно построенной архитектуре кода.
- Импорт одномоментно большого количества данных. Увеличение max_execution_time в данном случае оправданно, однако, позаботьтесь, чтобы NGINX не возвращал 504 ошибку, не дождавшись ответа от бекенда в отведённый срок.
- Проблемой также может послужить зацикленная рекурсия на основе While.
- Либо же долгое исполнение может быть из-за долгого получения данных из базы данных.
- Также, проблемой может служить слишком долгое ожидание ответа от внешнего ресурса, скажем, через file_get_contents
Свежие комментарии