Перенос сайта на VPS

4 Марта 2019

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

Этапы переноса

Перенос сайта на VPS состоит со следующих этапов:
  • Копирование файлов на локальный компьютер. 
  • Экспорт базы данных. 
  • Установка веб-сервера, СУБД и другого ПО на виртуальный сервер (ВС).
  • Настройка ПО на VPS. 
  • Загрузка файлов с локальной системы на ВС. 
  • Редактирование конфигурации движка (CMS).
  • Импорт базы данных на ВС. 
  • Перенос домена.

Копирование файлов сайта на локальный компьютер

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

перенос сайта на vps

Копирование файлов на локальный компьютер

Экспорт базы данных на локальный компьютер

Войдите в панель управления старого хостинга. В ней часто есть ссылка на phpMyAdmin –это приложение используется для работы с БД.
Далее действия будут такими:

  1. Выберите базу данных, которую нужно перенести.
  2. Откройте вкладку Экспорт.
  3. Выберите метод экспорта Обычный.
  4. Нажмите кнопку Вперед.
  5. Сохраните дамп. 
перенос сайта на vds

Экспорт базы данных

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Установка веб-сервера, СУБД и другого ПО на VPS

Подключитесь к серверу по ssh. После этого первым делом обновим список пакетов и сами пакеты (к ВС компании Xelent сразу предоставляется root-доступ, поэтому никакие дополнительные команды вроде sudo не нужны):

apt update
apt upgrade

Далее установим Apache (веб-сервер) и файловый менеджер mc (нужен для упрощения перемещения по файловой системе и редактирования файлов):

apt install apache2 mc

Перейдите в директорию /etc/apache2/sites-enabled и откройте файл 00-default.conf. Мы не будем создавать отдельные web-серверы для каждого сайта. Будем считать, что у нас есть один сайт и его конфигурация как раз будет храниться в 00-default.conf. Реальный пример конфигурации приведен на следующем рисунке.

перенос сайта на vps

Конфигурация сервера: имя сервера затерто (поскольку производилась настройка реального сервера и его имя скрыто в интересах клиента)

Основные директивы:

  • ServerName – здесь нужно указать домен;
  • DocumentRoot – указывает, где будут храниться документы сайта, мы используем каталог по умолчанию /var/www/html
  • ServerAdmin – можно указать адрес электронной почты администратора сервера.

Запустим web-сервер:

systemctl start apache2.service

Установим СУБД MySQL, команды:

apt install mysql-server mysql-client
mysql_secure_installation

Первая команда устанавливает необходимые пакеты – сервер и клиент. Вторая запускает настройку так называемой безопасной инсталляции, в ходе которой будет произведено:

  1. Установка пароля для MySQL-пользователя root. Обратите внимание, что этот пользователь и системный пользователь root – две разные сущности, поэтому постарайтесь, чтобы и пароли у них были разные.
  2. Удаление тестовой БД.
  3. Запрет подключения к серверу баз данных извне, только с локального узла. Это означает, что к СУБД сможет подключиться ПО, работающее только на этом VPS, а не все желающие. Не беспокойтесь: к вашему сайту смогут подключаться все пользователи, просто они не смогут напрямую подключаться к БД, что нежелательно с точки зрения безопасности. 

После этого нужно ввести команду:

mysql -u root -p
CREATE DATABASE site;
CREATE USER siteuser@localhost IDENTIFIED BY '123456789';
GRANT ALL PRIVILEGES ON site.* TO siteuser@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit

Здесь запускается клиент и от имени MySQL-пользователя root выполняются запросы. Первый запрос создает базу данных site, второй – создает пользователя siteuser, от имени которого CMS будет обращаться к СУБД. Третий запрос – предоставление полномочий пользователю siteuser ко всем таблицам базы данных site. Естественно, вместо '123456789' укажите какой-то сложный пароль.

Последний запрос осуществляет применение полномочий, а команда exit – выход из клиента mysql.

Для установки PHP и всех необходимых (в большинстве случаев) пакетов используется вот такая длинная команда:

apt install php php-cli openssl php-curl php-gd php-mcrypt php-xml php-intl php-zip php-mbstring php-soap php-mysql php-json libapache2-mod-php php-xsl composer

Она установит последнюю версию интерпретатора, доступную для вашего дистрибутива. Например, для Ubuntu 16.04 – это будет 7.0, для 18.04 – 7.2. Узнать версию можно командой:

php –v

перенос на vps

Версия интерпретатора

Установим максимальный размер памяти для сценария. Откройте файл конфигурации (X – версия):

sudo mcedit /etc/php/7.X/apache2/php.ini

В нем нужно изменить лимит памяти и сразу сохраниться:

memory_limit = 512M

Добавим необходимые модули Apache (введите команду):

a2enmod rewrite

Также, чтобы нормально работали SEF URL некоторых CMS нужно открыть /etc/apache2/sites-enabled/000-default.conf и добавить в секцию VirtualHost строки:


Options Indexes FollowSymLinks MultiViews
AllowOverride All

Все, можно повторно перезапускать Apache.

Загрузка файлов с локальной системы на VPS

Загрузите ваши файлы в каталог /var/www/html или любой другой, который вы указали в DocumentRoot. Если для подключения по SSH вы используете Bitvise SSH Client, загрузить файлы можно в окне Bitvise SFTP. Используйте команду контекстного меню Upload.

перенос на vps

Bitvise SFTP

После этого перейдите в каталог /var/www/html (или любой другой, указанный в конфигурации):

find . –exec chown www-data:www-data {} \;

Команда делает владельцем всех файлов и каталогов пользователя www-data, от имени которого работает веб-сервер (сейчас владелец root и пользователь www-data не сможет перезаписать файлы, созданные суперпользователем, в результате движок сайта не сможет записать кэш и другую информацию).

Редактирование конфигурации движка сайта

В файловом менеджере mc откройте для редактирования (кнопка F4) файл конфигурации движка. Его название и расположения зависит от используемой CMS (например, в случае WordPress – это wp-config.php). В нем нужно "прописать" новые параметры для доступа к БД:

  • Узел – localhost
  • Имя пользователя – siteuser
  • Пароль – 123456789
  • База данных – site

Конечно, у вас будут другие, свои значения, которые вы указали при настройке MySQL.

Импорт базы данных на VPS

Здесь все просто. Загрузите на сервер (по SSH) дамп базы данных, полученный при экспорте. Пусть он называется db.sql. Если он сжатый, то сначала его нужно распаковать:

unzip db.sql.zip

Теперь импортируем его в БД:

mysql –u siteuser –p site < db.sql

Разберемся что есть что: опция –u задает пользователя БД (siteuser), опция –p говорит о том, что нужно будет спросить пароль этого пользователя, site – это БД, а db.sql – импортируемая БД.

Перенос доменного имени

Осталось самое малое – открыть панель управления доменным именем. Если вы покупали домен вместе с хостингом, скорее всего, это будет панель управления хостингом. Если вы покупали домен у регистратора (например, на reg.ru), зайдите в личный кабинет. В настройках домена у вас сейчас прописаны NS-записи – удалите их. Вместо этого создайте A-запись, указывающую на IP-адрес вашего VPS.

Внимание! Многие после этого совершают одну большую ошибку, а именно – "забывают" пароль от старого хостинга или удаляют аккаунт. Если домен зарегистрирован непосредственно у регистратора доменного имени (nic.ru, reg.ru и т.д.), старый аккаунт можно удалить. А вот если вы покупали домен вместе с хостингом, то управление доменом будет производиться через панель управления старым хостингом. Да, за хостинг платить не нужно, но раз в году необходимо оплачивать продление доменного имени. Или же обратитесь в службу поддержки старого хостинга – они помогут перенести домен в другое место. Лучше всего перенести домен к регистратору доменных имен, а не к новому хостеру – так не придется проделывать эту процедуру еще раз при следующем "переезде".

На этом все. Процедура переезда с виртуального хостинга на VPS завершена. 


Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent