Ошибка Maximum execution time of 30 seconds exceeded возникает, когда PHP скрипт выполняется более 30 секунд.

Быстрое исправление

Чтобы исправить проблему, достаточно увеличить допустимое время работы скрипта в php.ini:

max_execution_time = 900

# Ограничение в 15 минут, вместо 30 секунд по умолчанию

Либо прямо в коде:

<?
ini_set('max_execution_time', 900);
# ...

# Установит ограничение в 900 секунд для текущего скрипта

Причин возникновения ошибки Maximum execution time может быть несколько.

1. Медленные внешние запросы

Если PHP получает какие-то данные из внешних ресурсов либо из базы данных, это может занимать очень большое количество времени. В этом случае можно использовать кэширование.

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

2. Бесконечные циклы и рекурсия

Частые ошибки в коде приводят к тому, что код выполняется бесконечно:

while ( 1 < 2 ) {
	# ....
}

# Цикл будет выполняться всегда

Общие рекомендации по оптимизации приложений на PHP.