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


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

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

Перенос сайта на VPS состоит со следующих этапов:

  1. Копирование файлов на локальный компьютер.
  2. Экспорт базы данных.
  3. Установка веб-сервера, СУБД и другого ПО на виртуальный сервер (ВС).
  4. Настройка ПО на VPS.
  5. Загрузка файлов с локальной системы на ВС.
  6. Редактирование конфигурации движка (CMS)
  7. Импорт базы данных на ВС.
  8. Перенос домена.

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

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

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

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

Далее действия будут такими:

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

Установка веб-сервера, СУБД и другого ПО на 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. Реальный пример конфигурации приведен на следующем рисунке.

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

  • 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

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

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

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

memory_limit = 1024M

Добавим необходимые модули 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.