Герои, поддержавшие проект3 ♥
  • Татьяна20.08.262 000 ₽
    поддержал проект ♥
  • Аноним13.08.2650 ₽
    Спасибо! Развития проекту!
  • Аноним20.07.26100 ₽
    поддержал проект ♥
Здесь навсегда остаются все, кто поддержал проект донатом — со своим сообщением или без.

Как распаковать архив сайта прямо на хостинге и не получить лишнюю папку или ошибку 500

Реклама
Нативный прямоугольник в статье300×250≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу
Разработчик набирает код на ноутбуке
Фото: Unsplash

Распаковать ZIP сайта через файловый менеджер shared-хостинга обычно быстрее, чем загружать тысячи мелких файлов по FTP. Но именно здесь часто появляется новая проблема: после распаковки сайт оказывается в public_html/site/ вместо public_html/, старый .htaccess перезаписывается, заканчивается место или архив оставляют доступным из интернета. Безопасный способ — сначала определить webroot, посмотреть структуру архива и сделать копию текущего сайта, а уже затем распаковывать.

Коротко: что сделать сразу

  1. Сделайте резервную копию существующих файлов и базы данных, если на хостинге уже есть рабочий сайт.
  2. Найдите точный webroot домена: public_html, www, htdocs или отдельную папку сайта.
  3. До распаковки посмотрите, что лежит на верхнем уровне архива: сами файлы сайта или ещё одна папка.
  4. Проверьте свободное место: после распаковки одновременно будут занимать место и архив, и извлечённые файлы.
  5. После проверки сайта удалите исходный архив из публичной директории или перенесите его выше webroot.
Нужна помощь? Если архив уже загружен, но непонятно, куда его распаковывать и что делать с config.php, .htaccess и базой, перенос можно выполнить без перезаписи рабочей версии вслепую.

Шаг 1. Найдите корневую папку именно этого домена

На разных хостингах корень сайта называется по-разному. В cPanel часто используется public_html, в ISPmanager домен может указывать на отдельный каталог внутри www, а собственная панель провайдера может называть его Корневая директория, Document Root, Web root или просто «Папка сайта».

Не угадывайте по названию. Откройте настройки домена в панели и посмотрите, какая директория назначена этому сайту. В ней обычно уже лежит index.php или index.html текущей версии.

Реклама
Перед блоком «Читайте также»970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Если на аккаунте несколько сайтов, ошибка особенно опасна: распаковка «в public_html по привычке» может затронуть другой домен. Сначала сверьте путь, затем работайте с файлами.

Реклама
После вступления970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Шаг 2. Сделайте копию перед заменой файлов

Если сайт уже работает, скачайте его текущие файлы на компьютер или создайте архив через панель. Отдельно экспортируйте базу MySQL. Архив файлов не заменяет резервную копию базы: статьи, заказы, пользователи и настройки CMS часто находятся именно там.

Перед заменой .htaccess и config.php сохраните отдельные копии. В config.php могут быть рабочие реквизиты базы, SMTP и пути, которые отличаются от версии на старом сервере.

Реклама
Мобильный баннер в теле статьи320×100≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

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

Реклама
Баннер после обложки970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу
Ноутбук показывает экран с фрагментами программного кода
Фото: Unsplash

Шаг 3. Проверьте структуру архива до распаковки

Откройте ZIP на своём компьютере и посмотрите первый уровень. Хороший вариант для прямой распаковки в webroot — когда внутри сразу находятся index.php, assets, uploads и другие файлы проекта.

Другой частый вариант — внутри архива сначала лежит одна папка, например site_backup/, а уже в ней index.php. Если такой архив распаковать прямо в public_html, получится путь public_html/site_backup/index.php. Домен при этом продолжит искать index.php уровнем выше и может показывать старую страницу, пустой каталог или ошибку.

Реклама
Горизонтальная растяжка в статье728×90≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

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

Реклама
Середина статьи970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Шаг 4. Проверьте свободное место и ограничения панели

ZIP размером 500 МБ после распаковки может занимать несколько гигабайт. Пока исходный архив не удалён, на аккаунте нужны место и для него, и для извлечённых файлов. Если квота закончится в середине операции, часть проекта распакуется, а часть — нет. Такой сайт может выдавать случайные 404, 500 и ошибки отсутствующих классов.

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

Реклама
Верхний баннер после заголовка970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Для владельца сайта без опыта предпочтительнее штатная кнопка Extract / Извлечь / Распаковать в файловом менеджере. Если панель такой функции не имеет, не нужно сразу переходить к неизвестным SSH-командам.

Реклама
Видео / медиа-блок в статье640×360 / видео 16:9≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Шаг 5. Распакуйте во временную папку, если есть сомнения

Самый безопасный сценарий для работающего сайта — создать рядом временную директорию, например _deploy_temp, загрузить туда архив и распаковать его там. После проверки структуры можно переместить нужные файлы в webroot.

При переносе внимательно смотрите предупреждения о совпадающих именах. Перезапись index.php, .htaccess или config.php без копии может мгновенно изменить работу сайта. Если панель предлагает «заменить все», не нажимайте автоматически.

Реклама
Вертикальный блок в статье300×600≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

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

Реклама
После статьи970×250 / адаптивный≈ 30 000 просмотров/мес. по сайтуСвободно — показы от 0,20 ₽Кликните чтобы разместить рекламу

Архив сайта и база MySQL — это разные части переноса

После распаковки файлы могут открываться, но приложение всё равно выдаст ошибку подключения к базе, если MySQL не импортирована или config.php содержит старые реквизиты. Создание базы, пользователя и импорт SQL выполняются отдельно через панель хостинга или phpMyAdmin.

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

Реквизиты MySQL лучше хранить в конфигурации вне публичной директории, если архитектура сайта это поддерживает. Не оставляйте пароль к базе в открытом текстовом файле или резервной копии, которую можно скачать по URL.

Экран ноутбука показывает программный код и системные значки
Фото: Unsplash

Что делать с правами файлов после распаковки

На типичном shared-хостинге обычные каталоги часто работают с 755, а файлы — с 644. Но не применяйте эти значения рекурсивно вслепую ко всему аккаунту и не ставьте 777. Конкретная схема зависит от того, от какого пользователя работает PHP и какие ACL использует хостер.

Если после распаковки сайт выдаёт 403 или PHP не может записать в uploads/cache, сначала посмотрите владельца файлов, логи и рекомендации хостера. Проблема может быть не только в числовых правах.

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

Если после распаковки появилась ошибка 500

Не удаляйте всё и не загружайте архив заново первым же действием. Откройте журнал ошибок сайта: он может называться Error Log, Логи, Журнал ошибок PHP, Apache/Nginx logs. Найдите сообщение по точному времени открытия страницы.

Частые причины после распаковки: несовместимая версия PHP, старый .htaccess, отсутствующие файлы из-за неполной распаковки, неправильные пути, неподходящий config.php или неустановленная база. Ошибка 500 не означает автоматически «неправильные права».

Перед изменением .htaccess верните его сохранённую копию или временно сравните правила с предыдущей рабочей версией. Не ставьте 777 и не отключайте SSL ради проверки.

Когда нужно менять DNS, а когда это вообще не связано с архивом

Если вы просто обновляете файлы на том же хостинге, DNS трогать не нужно. Распаковка ZIP никак не требует смены A-записи или NS.

Если это перенос на новый хостинг, сначала полностью проверьте сайт на новом сервере, затем меняйте DNS. До правки сохраните текущую зону. Изменения распространяются постепенно: в зависимости от TTL и кэшей провайдеров разные посетители могут попадать на старый или новый сервер от нескольких минут до 24–48 часов.

Не забывайте про почту: при переносе DNS должны сохраниться MX, SPF, DKIM и DMARC. Иначе сайт заработает, а корпоративные письма перестанут приходить.

После успешной установки удалите публичный архив

Файл вроде site-backup.zip, оставленный в public_html, может содержать config.php, исходный код и другие данные. Даже если ссылка на него нигде не опубликована, имя могут подобрать боты или оно попадёт в историю операций.

После проверки удалите архив из webroot. Если резервную копию нужно хранить на сервере, перенесите её в защищённую директорию выше публичного корня, к которой нельзя обратиться по HTTP.

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

Как понять, что сайт распакован правильно

  • Главная страница и несколько внутренних URL открываются из ожидаемого webroot.
  • CSS, JavaScript и изображения загружаются без 404.
  • Админка подключается к правильной базе данных.
  • Формы отправляются, а загрузка файлов работает.
  • В логах нет новых повторяющихся 500 или Permission denied.
  • .htaccess и config.php соответствуют текущему серверу.
  • Исходный ZIP больше не доступен из интернета.

Проверяйте не только главную. Неполная распаковка часто проявляется лишь на конкретной статье, в админке или при отправке формы.

Когда лучше остановиться и не экспериментировать

Остановитесь перед перезаписью рабочего config.php, .htaccess или базы, если у вас нет их копии. Не соглашайтесь на «заменить всё», пока не понимаете, какие серверные настройки отличаются от исходного архива.

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

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

Частые вопросы

Куда распаковывать ZIP сайта?

В webroot конкретного домена или сначала во временную папку рядом с ним. Точный путь нужно проверить в настройках домена хостинга.

Почему после распаковки появилась папка site и сайт не изменился?

Вероятно, архив содержал дополнительную верхнюю папку. Нужно переместить её содержимое в webroot или изменить корень домена осознанно.

Нужно ли ставить права 777, если после распаковки 403?

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

Нужно ли менять DNS после распаковки архива?

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

Читайте также:

Вывод

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