В настройках PHP установлены лимиты на время выполнения скриптов, в среднем они составляют 30 секунд. Иногда этого времени не хватает, особенно в случае работы с крупными порталами. Это может привести к плохому пользовательскому опыту и даже к потере клиентов. Поэтому при создании или эксплуатации сайта важно учитывать все факторы, которые могут повысить скорость. В этой статье мы расскажем, как увеличить время выполнения PHP-скрипта. При правильном подходе даже относительно небольшие улучшения этих аспектов окажут значительное влияние на показатели производительности системы.
Конфигурационный файл php.ini является основным ресурсом для внесения изменения настроек параметров. Он содержит всю необходимую информацию для настройки сервера на выполнение PHP-скриптов и приложений.
Находится он в корневом каталоге веб-сервера, обычно в папке с названием «php» или «etc». Файл содержит множество параметров, которые можно изменять, чтобы настроить серверную среду для различных приложений и скриптов. Как пример, с его помощью можно задать лимит памяти, уровень сообщений об ошибках, ограничения на размер загружаемых файлов, максимальное время выполнения и многое другое.
Одной из наиболее важных настроек является max_execution_time. Этот параметр задает максимальное время в секундах, в течение которого скрипт может выполняться до того, как его завершит сервер. Со стандартных 30 секунд стоит поставить другое значение, например, 300.
Ещё один полезный параметр — memory_limit. Он контролирует, сколько памяти в мегабайтах может использовать каждый скрипт, прежде чем будет завершен сервером. По умолчанию обычно используется значение 128 МБ, но увеличение этого числа позволит скриптам использовать больше памяти. То есть они будут выполняться дольше, прежде чем сервер завершит процесс.
Этот файл находится в корневом каталоге сайта или приложения и может быть открыт с помощью любого текстового редактора.
Как и в предыдущем способе, здесь нужно задать максимальное время выполнения скрипта. Для этого добавьте в начало кода следующую строку.
php_value max_execution_time 300
В результате максимальное время выполнения для всех скриптов увеличится до 5 минут. Сохраните изменения, а затем загрузите обратно на свой сервер.
Функция ini_set() позволяет задать определенный параметр конфигурации для текущего скрипта.
Чтобы с её помощью увеличить максимальное время выполнения, вызовите ini_set с целым значением, представляющим количество секунд, которое вы хотите, чтобы скрипт выполнялся до окончания тайминга. Например, если нужно, чтобы скрипт выполнялся в течение 5 минут до завершения работы, вызовете ini_set(«max_execution_time», 300).
Функция set_time_limit тоже указывает, сколько времени должен выполняться скрипт, прежде чем он прервётся. Если установить этот предел выше значения по умолчанию, скрипты будут иметь достаточно времени для выполнения своих задач без прерывания работы.
При необходимости можно использовать эту функцию несколько раз по всему коду. Это позволит регулировать максимальное время выполнения для разных его участков.
Функция работает только на серверах на базе Apache и не будет работать на других типах серверов, таких как IIS или Nginx. Кроме того, некоторые хостеры могут вообще отключить эту функцию.
Бывают ситуации, когда сложно или вообще невозможно заранее знать, сколько времени займёт отработка действия. Тогда ограничения по времени можно сбросить.
Для этого в указанных выше способах нужно поставить значение 0 вместо стандартных 30. Так сервер понимает, что не должно быть никаких лимитов при выполнении скрипта. Он всегда будут иметь бесконечное время выполнения, независимо от его продолжительности или уровня сложности.
Это оптимальное решение для разработки и тестирования проектов, когда с ним ещё не работают пользователи. После переноса сайта и его запуска эти настройки следует отменить, поставив актуальные значения.
Знание этой информации помогает оптимизировать код, гарантируя, что скрипты выполняются эффективно.
Создайте PHP-файл в корне сайта и укажите значение установленного времени.
Если значение равно указанному, всё работает корректно.
Некоторые из представленных способов могут не работать. Если вы с этим столкнулись, скорее всего, проблема заключается в запрете хостинг-провайдеров, которые не допускают изменения этого параметра. Поэтому очень важно найти тот вариант, где доступно максимум функций. Например, здесь можно подобрать надёжный хостинг сайтов https://www.nic.ru/catalog/hosting/shared/
А чтобы сайт стал ещё удобнее для пользователей, можете подобрать домен https://www.nic.ru/catalog/domains/
Убедитесь, что скрипты написаны оптимально для своей цели. Избегайте ненужных циклов и запросов, используя соответствующие алгоритмы. Разделите процессы на несколько частей, чтобы они выполнялись быстрее. Целесообразно одновременное выполнение синхронных действий, то есть выполнение двух задач одновременно, а не ожидание выполнения одной задачи перед началом другой.
Помните – если решили изменить время выполнения скрипта глобально, это может привести к увеличению времени загрузки страницы и другим проблемам с производительностью. Поэтому применяйте указанные способы только в случае крайней необходимости.