Поддержка PHP-проекта: состав работ, цена, как выбрать
Изометрический чертёж: сетка в рамке на подложке, сквозь ячейку продет изумрудный шарик, второй застрял снаружи

Поддержка PHP-проекта: состав работ, цена, как выбрать

Поддержка PHP-проекта — обновления, безопасность, мониторинг и доработки после запуска. Разбираем, что входит в работы и как выбрать подрядчика.

Поддержка PHP-проекта: как не потерять сайт после запуска

Поддержка PHP-проекта — это регулярные работы по обновлению, защите, мониторингу и доработке сайта или сервиса после релиза, благодаря которым он остаётся быстрым, безопасным и доступным для пользователей.

Запуск — это начало жизни проекта, а не финал: код устаревает, а угрозы и требования поисковиков меняются постоянно.

PHP до сих пор лежит в основе огромной части Рунета: интернет-магазинов на Bitrix, WordPress и Laravel, корпоративных порталов, CRM и личных кабинетов. Многие из этих проектов запускали несколько лет назад и с тех пор почти не трогали. В статье разберём, что входит в профессиональное сопровождение, как организовать процесс, какие модели сотрудничества существуют и на что смотреть при выборе подрядчика.

Зачем проекту нужна поддержка, если он «просто работает»

Сайт, который сегодня открывается без ошибок, не обязательно здоров. Пока никто не вносит изменений, проблемы накапливаются тихо: сервер получает новые уязвимости, библиотеки устаревают, база данных растёт, а нагрузка увеличивается вместе с трафиком. Рано или поздно хостинг-провайдер отключает старую версию PHP, обновляется плагин или меняется API платёжной системы, и сайт перестаёт работать в самый неудобный момент.

Особенно заметна проблема с версиями языка. PHP 7.4 и 8.0 официально сняты с поддержки: для них больше не выпускают даже исправления безопасности. Современные версии 8.x дают заметный прирост производительности, строгую типизацию и более понятные сообщения об ошибках, а свежие пакеты Composer всё чаще требуют именно их.

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

01 / без поддержки

Проект живёт сам по себе

  • Старая версия PHP без патчей безопасности
  • О падении сайта узнают от клиентов
  • Правки на боевом сервере без бэкапа
  • Зависимости не обновлялись годами
  • Каждая авария — срочный поиск разработчика
02 / с поддержкой

Проект под контролем

  • Актуальная версия PHP и обновляемые пакеты
  • Мониторинг сообщает о сбое за минуты
  • Изменения проходят через Git и тестовое окружение
  • Резервные копии проверяются на восстановление
  • Есть регламент, SLA и ежемесячный отчёт

Разница между двумя колонками — это не вопрос бюджета, а вопрос дисциплины. Большинство перечисленных практик не требует дорогих инструментов: достаточно репозитория, тестового окружения, мониторинга и договорённости о том, кто и как реагирует на инциденты.

Ниже — конкретные выгоды, которые получает владелец проекта при системном подходе.

Что даёт регулярная поддержка PHP-проекта

  1. 01

    Безопасность: своевременные патчи ядра, CMS, фреймворка и пакетов закрывают известные уязвимости до того, как ими воспользуются

  2. 02

    Стабильность: мониторинг доступности и ошибок позволяет исправлять сбои до массовых жалоб пользователей

  3. 03

    Скорость: профилирование, кэширование и оптимизация запросов к базе снижают время ответа сервера

  4. 04

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

  5. 05

    Сохранность данных: автоматические бэкапы и проверенный план восстановления страхуют от потери заказов и клиентской базы

  6. 06

    Сохранение знаний: документация, чистая история коммитов и описание окружений снижают зависимость от одного разработчика

Из чего состоит поддержка на практике

Под словом «поддержка» разные подрядчики понимают разное: кто-то только отвечает на письма, кто-то берёт на себя всю техническую жизнь проекта. Чтобы избежать недопонимания, перечень работ должен быть зафиксирован письменно.

Условно все задачи делятся на плановые (профилактика и обновления) и внеплановые (инциденты и срочные правки). Плановые работы выполняют по графику, внеплановые — по приоритетам и согласованному времени реакции. В таблице собраны основные направления.

НаправлениеЧто входитПериодичность
ОбновленияВерсия PHP, фреймворк или CMS, пакеты Composer, плагиныЕжемесячно и по выходу критичных патчей
БезопасностьСканирование уязвимостей, права доступа, ротация ключей, защита форм и админкиПостоянно, ревизия раз в квартал
МониторингДоступность, ошибки в логах, загрузка сервера, SSL-сертификаты, cron-задачиКруглосуточно в автоматическом режиме
Резервное копированиеКопии файлов и базы данных, хранение вне основного сервера, тест восстановленияЕжедневно, проверка раз в месяц
ПроизводительностьАнализ медленных запросов, кэш, очереди, оптимизация изображений и скриптовЕжеквартально или после роста нагрузки
ДоработкиНебольшие правки интерфейса, интеграции, новые поля и отчётыПо заявкам в рамках пакета часов

Обратите внимание, что в таблице нет слов «по необходимости» там, где можно задать регулярность. Чем точнее описаны периодичность и ответственные, тем меньше споров о том, что именно оплачено.

Теперь перейдём к порядку действий: как запустить поддержку на проекте, который раньше никто системно не сопровождал.

Как выстроить поддержку PHP-проекта с нуля

  1. 01

    Проведите аудит. Определите версию PHP, фреймворка и CMS, список зависимостей, состояние базы, наличие тестов, объём техдолга и качество логов. Результат — перечень рисков с приоритетами.

  2. 02

    Соберите доступы и документацию. Нужны репозиторий, доступ к серверу и панели хостинга, базе данных, DNS, почтовым сервисам и платёжным шлюзам. Все пароли храните в менеджере паролей, а не в переписке.

  3. 03

    Разведите окружения. Заведите отдельные среды: локальную, тестовую и боевую. Изменения должны попадать в продакшн только через Git и проверку, желательно с автоматическим деплоем (например, через Docker и CI).

  4. 04

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

  5. 05

    Подключите мониторинг. Следите за доступностью, кодами ответа, ошибками PHP, нагрузкой на сервер. Для отслеживания исключений подойдут системы вроде Sentry, а поведение пользователей — в Яндекс Метрике и Google Analytics.

  6. 06

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

  7. 07

    Утвердите регламент и SLA. Опишите каналы связи, приоритеты заявок, время реакции и решения, график плановых работ и формат отчёта.

  8. 08

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

Приоритеты и время реакции

Один из главных элементов договора — SLA, то есть соглашение об уровне обслуживания. Оно отвечает на вопрос: как быстро подрядчик начнёт работу и за какое время должен устранить проблему.

Не всякая ошибка требует ночного вызова. Недоступность оформления заказа — повод действовать немедленно, а неточность в тексте подвала подождёт до утра. Деление задач на уровни помогает и заказчику не переплачивать за срочность, и исполнителю — не тушить пожары вместо планомерной работы.

p1 / критичный
≈ 1 час

Сайт недоступен, не проходят оплата и заказы, взлом, утечка данных. Работа идёт сразу, при необходимости — круглосуточно.

p2 / важный
≈ 4 часа

Не работает часть функций: фильтр, форма, личный кабинет, выгрузка в 1С. Основной сценарий пользователя не заблокирован.

p3 / плановый
1–3 дня

Мелкие дефекты, правки вёрстки, небольшие доработки и консультации. Выполняются в рамках пакета часов.

Значения приведены как ориентир: точные сроки зависят от проекта и фиксируются в договоре.

Модели поддержки: штатный разработчик, фрилансер, студия

Штатный разработчик хорошо знает продукт и доступен ежедневно, но это постоянные расходы на зарплату и налоги, а при его отпуске или увольнении проект остаётся без владельца знаний. Модель оправдана, когда задач на полную ставку действительно хватает.

Фрилансер обычно дешевле и гибче, особенно для небольших сайтов. Риски — зависимость от одного человека, отсутствие подмены при болезни, неформальные договорённости и разная дисциплина в документировании.

Студия или команда на абонементе обеспечивает взаимозаменяемость специалистов, регламент, SLA и отчётность. Это решение для коммерческих проектов, где простой напрямую стоит денег. Платить придётся больше за час, зато не нужно искать замену и обучать нового человека.

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

На что смотреть при выборе подрядчика

Начните с вопросов о процессах, а не о цене. Как исполнитель работает с Git и тестовыми окружениями? Делает ли ревью кода? Как организованы бэкапы? Что происходит, если ключевой специалист недоступен? Готов ли он предоставить отчёт о проделанной работе по часам?

Хороший признак — желание начать с аудита и честный разговор о техдолге. Настораживает обещание «починим всё за фиксированную небольшую сумму» без изучения кода: в унаследованном проекте нередко встречаются правки ядра CMS, отсутствие миграций и непонятные зависимости, которые сильно меняют объём работ.

Отдельно уточните, с каким стеком работает команда: чистый PHP, Laravel, Symfony, Yii, Bitrix, WordPress, Drupal. Опыт в одном фреймворке не гарантирует глубокого понимания другого.

Частые ошибки при поддержке PHP-проектов

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

Как делать не стоит

  • Править файлы напрямую на боевом сервере по FTP без истории изменений
  • Обновлять PHP или CMS в пятницу вечером без тестового окружения и плана отката
  • Хранить единственный бэкап на том же сервере, что и сайт
  • Работать с одним разработчиком, у которого есть все пароли, и без документации
  • Игнорировать предупреждения в логах, пока не случится сбой
  • Оплачивать «поддержку» без перечня работ и отчётности

Как правильно

  1. 01

    Вести код в Git и выкатывать изменения через деплой с возможностью отката

  2. 02

    Сначала проверять обновления на копии проекта, затем выпускать в удобное время с запасом на исправления

  3. 03

    Хранить копии вне основного сервера и регулярно разворачивать их для проверки

  4. 04

    Использовать менеджер паролей, раздельные доступы и описание окружений в репозитории

  5. 05

    Настроить сбор ошибок и уведомления в рабочий мессенджер

  6. 06

    Зафиксировать состав работ, SLA и формат ежемесячного отчёта в договоре

Поддержка и поисковое продвижение

Техническое состояние сайта напрямую влияет на видимость в поисковых системах. Если сервер часто отвечает ошибками 5xx, страницы долго грузятся, а после обновления плагина «слетели» canonical и мета-теги, позиции в Яндексе и Google могут просесть. Недоступность сайта в момент визита поискового робота тоже сказывается на индексации.

Поэтому в регламент поддержки полезно включить регулярный просмотр отчётов в Яндекс Вебмастере и Google Search Console: ошибки индексации, проблемы с мобильной версией, предупреждения о безопасности, изменения в скорости загрузки. Параллельно стоит сверять данные Яндекс Метрики и Google Analytics: резкое падение конверсии или рост отказов после релиза часто указывает на скрытую техническую проблему.

Перед любым значимым обновлением сохраняйте список ключевых страниц и проверяйте после выкладки, что адреса, редиректы, robots.txt и карта сайта остались прежними.

чек-лист / раз в месяц

Ежемесячная проверка PHP-проекта

Версия PHP актуальна и входит в период поддержки
Пакеты Composer и плагины проверены на уязвимости
Бэкап восстановлен на тестовом сервере без ошибок
Журналы ошибок разобраны, повторяющиеся исправлены
SSL-сертификат, домен и хостинг оплачены с запасом
Отчёты Яндекс Вебмастера и Search Console без новых критичных ошибок

С чего начать уже сегодня

Если у вас нет возможности сразу подключить команду, выполните минимум своими силами. Узнайте, какая версия PHP стоит на сервере. Проверьте, где лежат резервные копии и когда их последний раз пробовали восстановить. Убедитесь, что у вас есть доступ к хостингу, домену и репозиторию, оформленный на компанию, а не на бывшего подрядчика.

Эти три действия занимают пару часов, но дают ясную картину рисков. Дальше можно обсуждать объём поддержки с конкретными цифрами, а не с общими опасениями.

Перед обновлением PHP или CMS на боевом сервере всегда делайте свежую резервную копию файлов и базы данных и проверяйте изменения на тестовой копии проекта. Это самая дешёвая страховка от простоя.

Итоги: поддержка как инвестиция в стабильность

Регулярное сопровождение обходится дешевле, чем восстановление проекта после взлома, потери данных или длительного простоя.
  1. 01

    Поддержка включает обновления, безопасность, мониторинг, бэкапы, оптимизацию и небольшие доработки

  2. 02

    Начинайте с аудита, доступов, отдельных окружений и проверенных резервных копий

  3. 03

    Зафиксируйте регламент и SLA: приоритеты, сроки реакции и формат отчётности

  4. 04

    Выбирайте модель — штатный специалист, фрилансер или студия — исходя из критичности проекта

  5. 05

    Следите за техническим здоровьем сайта в Яндекс Вебмастере, Google Search Console, Яндекс Метрике и Google Analytics

PHP-проект остаётся надёжным активом, пока за ним ухаживают: вовремя обновляют, проверяют и документируют. Определите текущее состояние, назначьте ответственного и закрепите правила работы — этого достаточно, чтобы превратить аварийные ситуации в рядовые плановые задачи.

Часто задаваемые вопросы

Получите аудит вашего PHP-проекта и план спокойной поддержки

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

Бесплатный аудитРеакция по SLAПрозрачная отчётность

Аудит кода и сервера — без обязательств

Политика конфиденциальности

При оставлении заявки на ресурсе «https://gurucontext.ru» пользователи предоставляют следующие сведения:

  • Имя
  • Контактный телефон или Telegram
  • Адрес сайта пользователя (не обязательно)

Также администрация сайта получает данные об IP-адресе посетителей, типе браузера, времени нахождения на сайте и прочие подобные сведения через сервисы статистики.

Использование информации

Вся полученная информация используется администрацией «https://gurucontext.ru» исключительно в целях связи с клиентом.

Защита персональных данных

Компания «https://gurucontext.ru» обязуется не разглашать сведения, полученные от пользователей, и хранит их в защищённом виде.

Предоставление данных третьим лицам

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

Контакты

Телефон: +7 (499) 955-47-00.
E-mail: info@gurucontext.ru.