Серверы и VDS

Сайта нет в панели хостинга: как понять, где лежат его файлы (хостинг, VDS или другой сервер)

Эдгар Косулин 6 мин чтения

Серия «Сервер в бою» · часть 16 из 16

Содержание

27 октября ночью клиент написал в поддержку: не может найти папку, в которой лежит интерактивная карта на его сайте, а хочет сделать ещё несколько таких же. Искал он в файловом менеджере хостинга. Папки там не было, и быть не могло: в хостинге у него заведён один сайт, другой, а этот работал на его же VDS. Но и на VDS отдельной папки с картой не оказалось.

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

Сначала узнайте, на каком сервере сайт

Сайт находится там, куда ведёт его домен. Что у вас куплено и где лежит архив с прошлогодней версией, значения не имеет. Адрес сервера хранится в DNS, в A-записи домена:

dig +short example.com A

В Windows то же самое делает nslookup example.com. В ответе будет IP-адрес, например 203.0.113.25. Это и есть сервер, на котором открывается сайт.

Проверяйте именно тот адрес, который открываете в браузере. Поддомен вроде map.example.com может вести совсем на другой сервер, чем example.com: у каждого имени своя запись. В нашем случае так и было. Один поддомен клиента жил на хостинге, второй, тот самый с картой, на VDS. Изредка так расходятся даже example.com и www.example.com, поэтому при сомнениях проверьте оба.

Дальше сравните адрес с тем, что у вас есть:

  • IP вашего VDS указан в его карточке у провайдера. Совпало: сайт на вашем сервере.
  • Адрес хостинга проще всего узнать той же командой для сайта, который точно есть в панели хостинга. На виртуальном хостинге сайты аккаунта обычно работают на одном общем адресе.
  • Ни то, ни другое. Тогда сервер чужой, и спросить, чей, можно у whois:
whois 203.0.113.25

В ответе будут название сети и организация. Если это Cloudflare, адрес ничего не говорит о сервере: Cloudflare стоит перед сайтом как прокси, и настоящий адрес видно только в настройках DNS у него в панели. Если домен вообще не отвечает, дело уже не в файлах, а в DNS. Этот случай мы разбирали в статье «Домен подключён, а сайт не открывается».

Сайт на хостинге

Здесь всё просто. Файлы каждого сайта лежат в папке www/<домен> домашнего каталога, и открыть их можно файловым менеджером панели или по FTP. Если домена нет в списке сайтов, а адрес совпадает с хостингом, проверьте, нет ли у вас второго аккаунта: сайт может жить в соседнем.

Сайт на вашем VDS

На VDS нет файлового менеджера хостинга, и папки www/<домен> там тоже нет, если вы её не создавали. Куда положить сайт, решал тот, кто настраивал сервер. Найти это место помогут настройки веб-сервера. Понадобится вход по SSH, а если он пугает, начните со статьи «SSH для тех, кто боится чёрного экрана».

Если на сервере nginx, выведите его настройки и найдите в них свой домен:

nginx -T 2>/dev/null | grep -n -E "server_name|root |proxy_pass"

Рядом со строкой server_name example.com будет одно из двух.

root /var/www/example; Это папка сайта, файлы лежат там. Так устроены обычные сайты на PHP и статические страницы.

proxy_pass http://127.0.0.1:3000; nginx сам файлы не отдаёт, а передаёт запросы программе, которая слушает этот порт. Так работают приложения на Node.js, Python и других языках. Узнаём, что это за программа:

ss -tlnp | grep ':3000'

В ответе будут её имя и номер процесса (pid). Папку, из которой она запущена, покажет команда:

readlink /proc/<pid>/cwd

Если приложение запущено как служба systemd, то же видно в описании службы, в строках WorkingDirectory и ExecStart:

systemctl cat <имя-службы>

С Apache проще: apache2ctl -S в Ubuntu и Debian (или httpd -S в других системах) перечисляет все сайты вместе с файлами настроек, а папка указана там в строке DocumentRoot.

У нашего клиента было так: nginx передавал запросы приложению на Node.js, оно работало как служба systemd, а сам проект лежал в отдельной папке в /var/www.

Сервер чужой

Если whois показал компанию, с которой у вас нет договора, сайт держит кто-то другой: прежний разработчик, студия или конструктор сайтов. В конструкторе файлов в привычном виде нет вообще, забрать можно только то, что он разрешает выгрузить. В остальных случаях доступ нужно просить у того, кто платит за сервер. Что стоит забрать у разработчика заранее, мы перечисляли в статье «Что забрать у разработчика после запуска сайта».

Папка нашлась, а нужного файла в ней нет

Это второй вопрос из начала. Страница на сайте не обязана быть отдельным файлом или папкой, и чаще всего ими не является.

В CMS вроде WordPress текст страниц и товары хранятся в базе данных, а в папках лежат только код и загруженные картинки. В приложениях данные часто лежат в одном общем файле на все записи. Так было и у нашего клиента. Карта состояла из двух частей: картинка в общей папке с изображениями и запись в файле данных формата JSON. В записи был путь к картинке и список точек, у каждой номер, название и положение на картинке в процентах. Чтобы сделать новую карту, нужно положить ещё одну картинку и дописать такую же запись другому объекту. Новая папка не нужна.

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

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

Как это устроено на Siteko. Сайты хостинга перечислены в карточке хостинга в кабинете, там же кнопка «Файловый менеджер», которая открывает панель без ввода пароля. В карточке VDS указаны IP-адрес и пользователь для входа по SSH. Файлы на VDS открываются по SSH или SFTP. Если подключена опция «Администрирование», сервер сопровождаем мы, и с таким вопросом можно сразу писать в поддержку.

Где ошиблись мы

Первым клиенту ответил бот поддержки, через 26 секунд. Сервер он определил верно: сверил адрес домена с услугами клиента и написал, что сайт не на хостинге, а на его VDS. А дальше начал искать папку, которой нет. Предложил войти на сервер по SSH под root, перебрать настройки nginx и Apache, а потом искать файлы по названию карты. Человеку, которому нужно поменять пару строк, это работа в консоли с неочевидным результатом.

Через 26 минут после вопроса ответил оператор: отдельной папки у карты нет, она состоит из картинки и записи в файле данных, вот пути к обоим, команды из ответа выше не нужны. Оператор знал устройство проекта, потому что мы сами разворачивали его на этом сервере. Бот этого знать не мог: он видит услуги и DNS, а не содержимое сервера. Ответил он на вопрос «где», а клиенту был нужен ответ на вопрос «что».

Если вы ищете на сервере что-то конкретное, пишите в поддержку не только «где лежит», но и что вы хотите с этим сделать. Тогда вам ответят на настоящий вопрос.

Серия

Сервер в бою

  1. 1. Сервер упал в три ночи: разбор полётов без паники
  2. 2. Логи, которые говорят: учимся читать journalctl, nginx и syslog
  3. 3. Fail2ban и брутфорс: как перестать кормить ботов
  4. 4. Мониторинг для одного сервера: Uptime Kuma, Netdata и здравый смысл
  5. 5. Диск закончился внезапно: куда деваются гигабайты на VPS
  6. 6. Обновления без страха: apt upgrade, который ничего не сломает
  7. 7. Свой VPN на VPS за полчаса: WireGuard без магии
  8. 8. Несколько сайтов на одном VPS: делим ресурсы без драки
  9. 9. Тормозит сайт? Виноват не хостинг: тюним nginx и PHP-FPM
  10. 10. MySQL на маленьком VPS: почему база съедает всю память
  11. 11. Кэширование на пальцах: Redis, FastCGI cache и когда хватит просто заголовков
  12. 12. Cron, systemd-таймеры и скрипты: автоматизируем рутину сервера
  13. 13. Деплой без FTP в 2026-м: git pull, хуки и простой CI/CD на своём VPS
  14. 14. Переезд на другой VPS без даунтайма: чек-лист миграции
  15. 15. Резервный сервер для интернет-магазина: переключение за минуту и почему мы отказались от балансировщика
  16. 16. Сайта нет в панели хостинга: как понять, где лежат его файлы (хостинг, VDS или другой сервер)

Linux nginx DNS

Поделиться: Telegram ВКонтакте

Новые статьи и разборы — в канале Siteko: Telegram MAX

Подписчикам: +30 дней к пробному хостингу, клиентам: +150 ₽ на баланс

Пошаговые инструкции по нашим услугам — в базе знаний

Ещё по теме

PTR-запись принадлежит IP-адресу, а не домену, поэтому в DNS домена её не добавить. Кому писать, что проверить до письма и как убедиться, что всё сошлось.

«Свой сервер с нуля», часть 13

Серверы и VDS 4 мин чтения

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

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

«Свой сервер с нуля», часть 11

Серверы и VDS 4 мин чтения

Бэкапы, которые реально спасут, а не лежат мёртвым грузом

У каждого, кто держит сервер, рано или поздно случается тот самый день. Упал диск, прошла кривая команда, влез вымогатель, или вы сами снесли не ту папку. Человек спокойно идёт за бэкапом и обнаруживает, что бэкап лежал на том же сервере, который только что умер. Или что архив пустой. Или что он год...

«Свой сервер с нуля», часть 12