Создание, продвижение сайтов
40-33-54

Перенос сайта c виртуального хостинга на VPS с помощью LAMP

10 декабря 2019

В этой статье мы расскажем, как перенести сайт с виртуального хостинга на VPS.

В качестве примера рассмотрим перенос простого сайта под управлением CMS WordPress на виртуальный сервер с ОС Ubuntu 18.04 и дополнительным ПО — в данном случае речь идет о т.н. LAMP-стеке.

  • Установка LAMP
  • Создание резервной копии базы данных
  • Копирование файлов сайта на VPS
  • Настройка виртуального хоста
  • Настройка прав доступа
  • Создание базы данных
  • Настройка конфигурационного файла сайта
  • Проверка результата переноса
  • Изменение А-записи домена

Установка LAMP

Стек LAMP — это набор программного обеспечения с открытым исходным кодом, включающий в себя операционную систему Linux, веб-сервер Apache, базу данных MySQL и интерпретатор PHP.

При создании сервера, а также при переустановке ОС на существующем сервере из нашей панели управления доступна установка LAMP в автоматическом режиме. После установки на почту владельца аккаунта направляется письмо с необходимыми для первоначальной настройки данными. Если при нажатии на кнопку «Открыть виртуальный хост» в письме вы увидите приветственную страницу веб-сервера — это значит, что установка ПО была успешно завершена и можно приступить к дальнейшей настройке сервера.

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

Создание резервной копии базы данных

Для выгрузки резервной копии базы данных легко использовать раздел BackUp в панели управления виртуальным хостингом. Подробнее о создании резервной копии можно узнать в разделе «Архивирование текущих данных» руководства по разделу BackUp. Узнать, с какой базой данных работает ваш сайт, вы можете из конфигурационного файла сайта.

Копирование файлов сайта на VPS

Для копирования файлов сайта удобно использовать Файловый менеджер.

1. В разделе VPS выберите виртуальный сервер, на который намерены осуществить перенос сайта, и откройте файловый менеджер, нажав на соответствующую иконку меню.

2. Нажмите на кнопку «Локальный сервер» в верхней панели файлового менеджера для перехода к домашней директории виртуального хостинга в активной панели.

3. Во второй панели перейдите в директорию 

/var/www/

 — в ней временно разместим файл резервной копии базы данных.

4. Найдите в корне домашней директории виртуального хостинга предварительно созданный файл резервной копии базы данных, выберите в контекстном меню опцию «Переместить» (или выделите файл и нажмите комбинацию 

Shift + 5

) и подтвердите действие.

В случае, если сайт расположен на другом аккаунте, вы можете подключится к этому аккаунту по FTP/SFTP в одной из панелей Файлового менеджера. Для этого необходимо:

  • Нажать на кнопку «Удаленный сервер» в верхней панели меню Файлового менеджера
  • Создать новое соединение в открывшемся окне. Для настройки соединения необходимо указать:

    — Тип соединения — при выборе SFTP убедитесь, что для аккаунта включен SSH-доступ.

    — Технический домен в качестве имени сервера — он имеет вид ваш_логин.beget.tech.

    — Порт — 21 для FTP, 22 для SFTP.

    — Логин аккаунта в качестве имени пользователя.

    — Пароль к аккаунту.

  • После этого нажмите «Сохранить».
  • Для установки соединения дважды кликните в строке с именем добавленного подключения.

5. После перемещения архив можно распаковать также с помощью инструментов файлового менеджера.

6. Далее необходимо скопировать файлы и папки сайта на VPS. В нашем примере файлы сайта на виртуальном хостинге размещены в директории 

~/wolfersen.ru/public_html/

 — точное имя директории, к которой прилинкован домен, можно узнать в разделе «Сайты» панели управления виртуальным хостингом.

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

/var/www/html/

Создадим новую директорию для файлов переносимого сайта на виртуальном сервере 

/var/www/wolfersen.ru/

 и скопируем в нее файлы сайта с виртуального хостинга.

Настройка виртуального хоста

1. Для того, чтобы веб-сервер корректно определял имя сервера по-умолчанию, рекомендуется добавить директиву 

ServerName

 в глобальную конфигурацию веб-сервера. Для этого откройте файл 

/etc/apache2/apache2.conf

в режиме правки:

Добавьте в начало файла строку ниже, после чего сохраните изменения и закройте файл:  

ServerName localhost

2. Далее требуется настроить виртуальный хост для нового сайта. Конфигурация виртуального хоста веб-сервера, созданного по-умолчанию, располагается в файле 

/etc/apache2/sites-available/000-default.conf

Перенесем эту конфигурацию в директорию 

/etc/apache2/sites-enabled

 с заменой уже существующей конфигурации (нажмите «ДА» при запросе на перезапись файла), после чего переименуем файл в wolfersen.ru.conf (обратите внимание, что в имени файла содержится имя директории, созданной для файлов сайта на предыдущем шаге).

Для редактирования конфигурации откроем файл в режиме правки.

3. В конфигурации виртуального хоста необходимо указать домен вашего сайта в качестве значения ServerName и ServerAlias

ServerName wolfersen.ru ServerAlias www.wolfersen.ru 

4. Исправить путь к директории с файлами сайта

DocumentRoot /var/www/wolfersen.ru

5. Для разрешения файлов 

.htaccess

необходимо установить директиву 

AllowOverride

внутри блока

Directory

, отвечающего за корневую директорию сайта. Для этого добавьте в конец файла следующие строки: 

<Directory /var/www/wolfersen.ru/> Options All -Indexes AllowOverride All </Directory>

6. После чего сохраните и закройте файл.

Пример готового виртуального хоста:

<VirtualHost *:80> 
  ServerName wolfersen.ru 
  ServerAlias www.wolfersen.ru 
  ServerAdmin webmaster@localhost 
  DocumentRoot /var/www/wolfersen.ru 
  ErrorLog ${APACHE_LOG_DIR}/error.log 
  CustomLog ${APACHE_LOG_DIR}/access.log 
  combined 
<Directory /var/www/wolfersen.ru/> 
  Options All -Indexes
  AllowOverride All 
</Directory> 
</VirtualHost>

Для дальнейшей настройки потребуется подключиться к серверу по SSH — рекомендуем использовать для этого удобный вам SSH-клиент (например, Putty в Windows) или стандартный терминал в Linux или MacOS.

Если вы добавили SSH-ключ для авторизации без ввода пароля, достаточно набрать в терминале:

ssh root@xxx.xxx.xxx.xxx

где 

xxx.xxx.xxx.xxx

 — IP-адрес вашего сервера, который указан на главной странице панели управления VPS:

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

Если нет возможности воспользоваться SSH-клиентом, вы можете открыть терминал в нашей панели управления — необходимо выполнить вход на сервер под пользователем 

root

с паролем, установленным при создании сервера.

1. Для использования директив перенаправления в 

.htaccess

активируем модуль веб-сервера

mod_rewrite

. Для этого в консоли необходимо ввести команду:

a2enmod rewrite

2. Для того, чтобы изменения вступили в силу потребуется перезапустить веб-сервер:

systemctl restart apache2

Настройка прав доступа

1. Для корректной работы веб-сервера необходимо изменить владельца файлов в корневой директории сайта на

www-data 

— это пользователь, под которым запускается и работает веб-сервер Apache.

chown -R www-data:www-data /var/www/wolfersen.ru

2. Также необходимо задать корректные права для файлов и директорий сайта:

find /var/www/wolfersen.ru/ -type d -exec chmod 750 {} \; 
find /var/www/wolfersen.ru/ -type f -exec chmod 640 {} \; 

Создание базы данных

1. Для создания новой базы данных для сайта зайдем в MySQL, набрав в консоли команду:

mysql

2. Создадим базу данных с названием wordpress (можно использовать удобное вам название) командой:

mysql> CREATE DATABASE wordpress;

3. Создадим нового пользователя с именем wp_user:

mysql> CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'set_your_password';

И назначим права для доступа нового пользователя wp_user к базе данных wordpress

mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';

4. Применим изменения:

mysql> FLUSH PRIVILEGES;

5. Импортируем файл резервной копии базы данных переносимого сайта в созданную нами новую базу (необходимо указывать абсолютный путь к файлу резервной копии):

mysql> USE wordpress; mysql> SOURCE /var/www/dump.sql; 

6. После успешного импорта можно выйти из MySQL:

mysql> EXIT;

7. В завершение необходимо удалить файл резервной копии базы данных:

rm /var/www/dump.sql

Настройка конфигурационного файла сайта

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

1. Для этого откроем файл в режиме правки, используя файловый менеджер. В нашем примере CMS WordPress — конфигурационный файл имеет имя 

wp-config.php

2. В файле необходимо заменить значения констант 

DB_NAME

,

DB_USER

и 

DB_PASSWORD

на те, которые мы указали при создании базы данных и пользователя базы данных.

3. После этого сохраните изменения и закройте файл.

Проверка результата переноса

После переноса сайта рекомендуем проверить его работоспособность при открытии с виртуального сервера. Сделать это можно путем добавления соответствия IP-адреса VPS и домена сайта в файл hosts на вашем локальном компьютере.

Изменение А-записи домена

Если сайт работает корректно — можно изменить DNS-записи домена вашего сайта, указав в качестве А-записи IP-адрес вашего виртуального сервера. После вступления изменений в силу (это занимает до 15 минут) сайт по вашему домену будет открываться с VPS.

Сделайте заказ с сайта и получите 10% скидку на услугу

Заказ услуги с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Заказать бесплатную SEO-консультацию

Запрос бесплатной SEO - консультации с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Письмо в компанию Райбин

Письмо в компанию RAYBIN

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.