Как и многие вещи в жизни, сайты иногда ломаются. Поэтому их нужно чинить, то есть дебажить.
Debug? Что за жуки такие?
Вы никогда не задумывались, почему «баг» и «дебаг» именно так называются? В чем связь с жуками?
Все весьма просто и прозаично. Еще до появления первых компьютеров жуки мешали своим существованием телефонисткам и радистам, так как заползали в места соединения проводов, из-за чего связь не устанавливалась. Поэтому приходилось очищать устройство от жучков — этакий первобытный дебаггинг.
Однако впервые термин прибыл в компьютерную сферу в 1945 году, когда Грейс Мюррей Хоппер нашла жучка в электромеханическом компьютере. Она так и записала в журнал (log) — «первый случай обнаружения жучка».
Процесс дебага
Дебаг — это поиск и исправление ошибок. Любой процесс отладки кода сайта/приложения строится по одной схеме:
- Получение кода ошибки;
- Выявление причин неисправности и ее местоположения (в коде, на стороне хостинг-провайдера, проблемы с сервером или интернет-соединением, вредонос);
- Исправление ошибки;
- Проверка работоспособности;
- Ждем новых неисправностей или возвращаемся к первому пункту, если дебаггинг не дал результатов.
Ошибки во время создания сайта
Во время создания сайта можно совершить немало ошибок в коде. Сейчас мы не будем говорить о различных CMS — о них чуть ниже. Здесь говорится о написании кода с нуля.
В коде могут быть совершенно разные неисправности, начиная не там или не тем поставленным символом и заканчивая грубой ошибкой в скрипте, посмотрев на которую бывалый программист хлопнет себя по лбу. Неработающий скрипт отследить намного проще, чем маленький символ. Часто допускают ошибку, когда название файла случайно писали с использованием кириллических с И правда, как можно отличить русскую «а», от английской «a»? И хорошо, если среда разработки вам подскажет, в чем дело, но иногда такую неисправность трудно определить. Особенно когда сайт отдает ошибку с текстом «у вас где-то в коде синтаксическая ошибка, посмотрите и исправьте». И никаких вам где и как это сделать.
В целом, такие проблемы возникают в момент тестирования работы сайта, поэтому их легко отследить.
Ошибки после обновлений
Такие неисправности чаще всего происходят по вине сторонних лиц. Если за время работы вашего сайта вышла новая версия языка программирования, то сайт может сломаться. Например, ваш сайт использует язык программирования PHP версии 8.0, а веб-сервер установлен на PHP 7.0 — скрипты не выполнятся, и вы увидите на экране ошибку. Конкретно в этом примере нужно просто сменить версию веб-сервера — сайт заработает, если нет других проблем.
Часто ошибки появляются после обновления CMS и расширений к нему. Разработчики выкатили новую версию, а вы не обновили ее — сайт сломан. Может произойти ситуация, когда обновили CMS и у себя, но уже в коде конструктора были ошибки, поэтому сайт не открывается. Такие неисправности обычно решаются на стороне разработчиков ПО, а не вашими силами (кроме случая с обновлением). Заметим, что в Базе знаний Спринтхост есть статья, посвященная исправлению ошибки WordPress.
Помимо этого, расширения CMS могут конфликтовать друг с другом. Так что внимательно следите за их совместимостью (не по гороскопу!).
Переходя к вредоносу, стоит отметить, что обновления CMS могут выявить новые уязвимости в них, поэтому нужно внимательно следить за новыми версиями, которые закрывают уязвимости в предыдущих.
Ошибки из-за вредоносной активности
Не менее часто ошибки возникают из-за внедрения вредоноса в код. Случается, что аккаунты на хостинге взламывают, также как и сами сайты. В любом случае злоумышленник получает доступ к сайту, после чего он может залить в код вредоносную часть, которую бывает сложно отличить от настоящего кода. Код от этого не сломается, и работа продолжится, но последствия все равно будут ощущаться. Например, более медленная загрузка, не работает получение или отправка писем, происходит перенаправление на другой сайт и другие приятные мелочи вирусов.
Есть, конечно, и явно выраженные вкрапления в код, например, в виде кракозябр. Их не слишком сложно отследить и удалить. Кроме того, в Спринтхост есть ХакСкан, который облегчает поиск вредоносной активности на аккаунте.
Важное дополнение! Если ХакСкан не обнаружил вирусы, но сайт заблокирован по причине вредоносной активности, то не трогайте ничего в файлах и коде. Иначе в логи добавится новая информация, и отследить момент и причину заражения будет сложно. Нужно написать в поддержку, а она уже добавит сигнатуру вируса в базу данных ХакСкана, чтобы впоследствии он смог обнаружить подобный вредонос. К тому же техподдержка подскажет, что нужно сделать с сайтом, чтобы таких ситуаций больше не происходило.
Что нельзя сделать с сайтом во время дебага?
Хостинг-провайдеры по очевидным причинам специально ограничивают своим клиентам доступ к серверам. Поэтому некоторые вещи невозможно сделать во время дебага. Например, прочитать некоторые журналы, в особенности отправки и получения почты. Соответственно, не получится выявить причину ошибки и где она находится. Для этого у техподдержки есть полный доступ к серверу, чтобы проводить диагностику сайтов и других сервисов.
Кроме того, при некоторых типах блокировки аккаунта нельзя провести дебаг сайта, так как доступ к нему закрыт даже по SSH. А по SSH легче всего дебажить сайт.
Дебаг: страшно или нет?
Дебажить сайты или любой другой код не страшно, это, наоборот, обязательно нужно делать. Не стоит пугаться, если ваш сайт вдруг не открывается — разберитесь, в чем причина, исправьте ошибку, смотрите в завтрашний день (в будущее), чтобы избежать повторения ошибки. Если самостоятельно исправить проблему не удается, то всегда можно обратиться в техподдержку. В Спринтхост она работает 24/7, поэтому в любое время вам помогут с решением неисправностей.
Не нужно бояться ошибок, они указывают на несовершенство вашего проекта, позволяют развивать его дальше, делать еще лучше и удобнее для пользователей. Ошибайтесь, кричите (опционально) и дебажьте!