Перенос сайта c виртуального хостинга на VPS с помощью LAMP
В этой статье мы расскажем, как перенести сайт с виртуального хостинга на 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.