Как перенести тяжёлый большой сайт на VPS с обычного хостинга

Текущий пост понадобится владельцам сайтов, которым пришло время перенести свой тяжёлый и высоконагруженный сайт с обычного хостинга или безлимитного хостинга типа «Спектр», наконец, на нормальный VPS.

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

Выбор ВПС и почему CentOS

Для начинающего администратора виртуальных серверов лучше выбрать хостера, который предложит автоматическую установку образа CentOS с сопутствующим набором нужных приложений, а именно:

  • Веб-сервер с FTP доступом (а лучше — ещё и с онлайн менеджером файлов), PHP, MySQL и автоматическими дампами через ПУ.
  • Со всеми нужными утилитами: phpmyadmin, wget, cron, OpenSSH, gzip, mail, iptables и т.д.
  • С возможностью быстро сбросить весь сервер к начальному образу, перезагрузить его, круглосуточно обратиться в поддержку даже с самыми дилетантскими вопросами.

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

При заказе у них сервера выбирайте последнюю CentOS с ПУ Джино. Это избавит от многих других вопросов в будущем. Если выберите вариант без выделенного ip, то VPS уже будет защищён от внешних атак через промежуточный NAS и дополнительно настраивать файрвол и перебрасывать порты будет не нужно, а это значительный плюс для начинающего.

Впрочем, моя инструкция поможет с переносом крупного сайта на VPS любого хостера и почти на любую ОС на ядре Линукс, так что здесь я не настаиваю.

Что понадобится

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

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

Ещё нам нужен будет доступ в консоль. На ВПС с ПУ Джино есть возможность работать с консолью прямо из браузера, проще простого. Если ваш хостер не даёт такой возможности, то используйте программу типа Putty и входите в консоль с данными от хостера.

Также, после удачного переноса нужно будет сменить NS у регистратора домена на новые, если переезжаете к другому хостеру. Это всё. На этапе переноса нам не нужны доступы по FTP и в phpmyadmin, всё будем делать в консоли.

Перенос дампа напрямую на VPS

В консоли пишем:

wget -P /var/www/domains/mydomain.ru/ https://link

где mydomain.ru — это домен сайта, который переносите, а https://link — это ссылка, по которой можно скачать дамп с удалённого сервера. Если каких-то папок на сервере ещё нет, то они будут созданы автоматически.

Вообще, «wget» позволяет скачивать на наш VPS любые файлы по прямым ссылкам. Например, такая команда затащит в корневую папку пользователя картинку с моего блога:

wget https://code66.ru/wp-content/uploads/2020/06/in_index.jpg

Можете попробовать и найдёте её потом в корневой директории пользователя «root». Но добавив «-P» мы сразу задаём путь от корня, куда будет перемещён файл:

wget -P /var/www/domains/mydomain.ru/ https://code66.ru/wp-content/uploads/2020/06/in_index.jpg

Заодно и каталоги создаются по необходимости.

Несколько важных моментов для самых начинающих. Если нужно на каком-то этапе очистить консоль вводите «clear» без кавычек. Перезагрузка всего сервера с CentOS — «reboot». Команда «top» — общие данные о сервере и нагрузке.

Если не знаете, как работать с той или иной командой, то используйте запись вида «команда -h». Например, команда «zip» для упаковки архивов и команда «unzip» для распаковки архивов нам понадобится в следующем шаге. Наберём unzip -h и получим набор опций для работы с архивами.

Внимание! Если у вас есть файловый менеджер для VPS от хостера (как в ПУ Джино) или вы предпочитаете работать с файлами через FTP-клиент, то можете разархивировать дамп сайта и через них. В противном случае делаем распаковку в этот же каталог из консоли:

unzip /var/www/domains/mydomain.ru/dump.zip -d /var/www/domains/mydomain.ru

После команды «unzip» указываем полный путь к архиву, не забываем прописать свой домен в нём, потом после опции «-d» через пробел прописываем этот же путь, чтобы распаковалось именно туда, а не в каталог root.

В случае успеха будет указано «extracting: путь_к_распакованным_файлам».

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

Работа с базой данных

Тут ещё всё проще. Командой «mysql» подключаемся, используя логин и пароль:

mysql -uroot -ppass

, где root — имя пользователя, pass — пароль. Обратите внимание: никаких ошибок выше в запросе нет. Пишем именно так, без пробелов там, где они не нужны!

Если база данных ещё не создана через ПУ, то мы её создадим командой:

CREATE DATABASE mysite_db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

, где mysite_db — это название, которое задаёте вы, далее идёт кодировка utf8. Проверить наличие БД можно запросом, который выдаст все имеющиеся базы для данного пользователя: show databases; .

Вас поприветствуют «Welcome», дадут информацию о базе и копирайты. Выбираем нужную БД:

use имя_базы

И произведём в неё импорт нашего дампа, указав к нему полный путь:

source /var/www/domains/mydomain.ru/dump.sql

Импорт займёт некоторое время, в зависимости от размеров импортируемой БД.

После выходим из авторизации пользователем БД командой exit .

Заключительные действия

Вот, собственно, и всё! Остаётся только сменить NS домена и подождать. При необходимости нужно переписать и данные подключения к БД, это уже зависит от самого сайта и на чём он сделан. Например, для WordPress нужно сменить эти данные в файле wp-config.php в корневом каталоге сайта.

Благодаря доступу к консоли управления сервером, мы можем довольно быстро переносить действительно крупные и тяжёлые сайты, заливая архив напрямую между старым обычным хостингом и новым VPS, исключая наш компьютер и наш канал интернета, как промежуточный. Я так переносил сайты размером в десятки гигабайт. Также и с ипортом базы. Крупные БД бывает сложно или и вообще невозможно импортировать через phpmyadmin и иные утилиты.

Заодно и получили начальным навыкам администрирования VPS на CentOS! Ну и напоследок ещё одну команду подскажу. Командой yum мы можем скачивать из репозитория и устанавливать важные пакеты обновлений. Например, командой ниже мы обновим PHP до последнего на момент написания данной статьи «PHP 8.0».

yum --enablerepo=remi-php80 -y install php80-php-cli php80-php-pear php80-php-fpm php80-php-pecl-mcrypt php80-php-bcmath php80-runtime php80-php-common php80-php-pdo php80-php-process php80-php-mysqlnd php80-php php80-php-opcache php80-php-gmp php80-php-gd php80-php-mbstring php80-php-json php80-php-xml php80-php-pecl-imagick php80-php-intl php80

Замените php80 на нужную на текущий момент и получите результат!

Удачи!


Подпишись на рассылку и получай свежие кейсы первым:

✔ Нажимая кнопку ниже я даю согласие на обработку персональных данных.

Понравилась статья? Поделиться с друзьями:
Заработок в интернете - блог
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.