17 April 2021
Со временем любой развивающийся проект задумывается о собственном сервере. Как мы уже неоднократно отмечали в нашем блоге, оптимальным вариантом является именно VPS. В этой статье мы рассмотрим поэтапно перенос сайта с хостинга на VPS.
Перенос сайта на VPS состоит со следующих этапов:
ППодключитесь к виртуальному хостингу по FTP. Лучше всего для этого использовать FileZilla, поскольку этот FTP-клиент хорошо работает с большим количеством файлов. Перейдите в каталог, содержащий файлы сайта. Как правило, это каталог public_html. Если вы раньше администрировали сайт, то наверняка знаете, как называется этот каталог. Если возникли сложности, обратитесь в саппорт хостинг-провайдера.
Войдите в панель управления старого хостинга. В ней часто есть ссылка на phpMyAdmin –это приложение используется для работы с БД.
Далее действия будут такими:
Подключитесь к серверу по 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. Реальный пример конфигурации приведен на следующем рисунке.
Основные директивы:
Запустим web-сервер:
systemctl start apache2.service
Установим СУБД MySQL, команды:
apt install mysql-server mysql-client mysql_secure_installation
Первая команда устанавливает необходимые пакеты – сервер и клиент. Вторая запускает настройку так называемой безопасной инсталляции, в ходе которой будет произведено:
После этого нужно ввести команду:
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.
Загрузите ваши файлы в каталог /var/www/html или любой другой, который вы указали в DocumentRoot. Если для подключения по SSH вы используете Bitvise SSH Client, загрузить файлы можно в окне Bitvise SFTP. Используйте команду контекстного меню Upload.