Как развернуть WordPress в облаке. Инструкция для новичков

Рассказываем по шагам, как запустить сайт на виртуальной машине с образом Linux и стеком LAMP.

Как развернуть WordPress в облаке. Инструкция для новичков

Привет, мы Cloud.ru, провайдер облачных сервисов и AI-технологий. Собрали простую инструкцию по запуску сайта на виртуальной машине (ВМ) на платформе Cloud.ru Evolution для тех, кто только начинает работать с облаком. Пройдя все шаги, получится понять принцип и простоту работы с облачными сервисами.

Сохраняйте инструкцию в закладках или файлом на рабочий стол. Кнопка «Скачать» в конце статьи 👇

Нересурсоемкий сайт можно развернуть на виртуальной машине с free tier, то есть объемом vCPU и RAM, за которые не надо платить — получится бюджетный вариант. Одно «но»: число ядер и объем памяти нельзя будет изменить. Если интересен такой вариант, в видео рассказываем, как подключить и настроить ВМ с free tier.

У сайта в облаке есть преимущества, его легко масштабировать и интегрировать с облачными сервисами: хранилищем, базой данных, сервисом мониторинга и логирования. В каких случаях лучше размещать сайт на виртуальной машине и чем такой вариант отличается от веб-хостинга, разбираем в статье «Веб-хостинг и хостинг в облаке — это одно и то же?».

Порядок шагов:

Зарегистрируйтесь в личном кабинете облака

  • Перейдите на страницу регистрации и выберите удобный способ: по email или Сбер ID.
  • Подтвердите ваш email или введите код, если выбрали Сбер ID, и заполните анкету.

Если привяжете карту, вам на баланс начислятся 4 000 бонусов — их можно потратить на любые облачные сервисы Cloud.ru. 1 бонус = 1 рубль. Неиспользованные бонусы сгорят через 60 дней с момента начисления.

Создайте виртуальную машину

  • В личном кабинете в левом верхнем углу нажмите на иконку из 9 точек, введите в поисковой строке «Виртуальные машины», перейдите на страницу сервиса и нажмите «Создать виртуальную машину».
  • Укажите название.

Лучше, если название виртуальной машины будет начинаться с «vm-» — это поможет понять тип ресурса в общем списке ресурсов.

Как развернуть WordPress в облаке. Инструкция для новичков
  • Заполните описание.

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

Как развернуть WordPress в облаке. Инструкция для новичков
  • Выберите зону доступности.

  • Выберите образ: в разделе «Образ» перейдите на вкладку «Маркетплейс» и выберите образ LAMP.

Для размещения WordPress на виртуальной машине лучше выбрать образ Linux со стеком LAMP (Linux, Apache, MySQL, PHP). В нем будет операционная система на базе Linux, дистрибутивы веб-сервера Apache, сервер баз данных MySQL и интерпретатор PHP. Образ со стеком LAMP ощутимо упрощает установку WordPress, потому что в нем есть все необходимые пакеты.

Как развернуть WordPress в облаке. Инструкция для новичков
  • Настройте вычислительные ресурсы: количество и гарантированную долю vCPU, объем оперативной памяти (RAM).

Для не ресурсоемкого сайта будет достаточно гарантированной доли vCPU 30%, 2 vCPU и 4 ГБ оперативной памяти. При необходимости можно будет позже изменить количество ресурсов виртуальной машины.

  • Установите требуемый объем памяти загрузочного диска.

При необходимости объем памяти загрузочного диска можно будет увеличить, но не уменьшить.

Как развернуть WordPress в облаке. Инструкция для новичков
  • Нажмите «Продолжить» и перейдите к сетевым настройкам виртуальной машины.

  • Подключите виртуальную машину к подсети: выберите целевые VPC и подсеть и одну или несколько групп безопасности.

Если планируете подключить к виртуальной машине, например, отдельно стоящую базу данных или PaaS-сервис, ее нужно подключить к подсети. Или оставить настройки по умолчанию и не подключать к подсети, если нужен только доступ виртуальной машины к интернету.

По умолчанию группа безопасности стоит SSH-access_ru.AZ-[номер зоны доступности] — это позволит подключаться к ВМ по протоколу SSH на TCP-порт 22. Если нужно открыть еще какие-то порты, можно добавить еще группы безопасности или сделать это позднее.

  • Оставьте активной опцию «Назначить публичный IP», чтобы у виртуальной машины был доступ в интернет.
Как развернуть WordPress в облаке. Инструкция для новичков
  • Выберите тип публичного IP-адреса: прямой или плавающий.

Когда подключаем прямой IP-адрес, облачная платформа создает для ВМ отдельный сетевой интерфейс. В этом случае вам придется самостоятельно настроить маршрутизацию. А когда подключаем плавающий IP-адрес, облачная платформа назначает публичный IP-адрес с помощью NAT 1:1 — маршруты настраивать не надо.

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

Аутентификация через публичный ключ — самый безопасный способ подключения к виртуальной машине. Как загрузить открытую часть SSH-ключа в облако, рассказываем в видео.

Аутентификацию по паролю стоит добавить как страховочный вариант на случай, если надо будет подключиться к виртуальной машине через виртуальную или серийную консоль или если потеряется открытая часть SSH-ключа.

  • Нажмите «Создать».

На главном экране сервиса «Виртуальные машины» в списке должна появиться новая ВМ, примерно через минуту ее статус должен измениться на «Запущена».

Как развернуть WordPress в облаке. Инструкция для новичков

Подключитесь к виртуальной машине

  • В личном кабинете в левом верхнем углу нажмите на иконку из 9 точек, введите в поисковой строке «Группы безопасности», перейдите на страницу сервиса и выберите группу безопасности, которая назначена на ВМ.

  • Перейдите на вкладку «Правила» в левом боковом меню и отредактируйте входящее правило для TCP-порта 22: в поле «Источник» укажите свой IP-адрес или подсеть.

Ваш IP скорей всего не белый и может меняться. Лучше при каждом подключении менять входящие правила группы безопасности, чем указать там IP адрес 0.0.0.0/0 и разрешить SSH-подключение к ВМ всему интернету.

Чтобы проверить, что правило для подключения по SSH с IP-адреса создано и работает, подключитесь к ВМ, используя приватный SSH-ключ.

  • Подключитесь к ВМ с помощью SSH-клиента.

Создайте базу данных для WordPress

  • Подключитесь к локальному серверу баз данных виртуальной машины с помощью клиента mysql: введите команду
sudo mysql -u root -p
  • Кликните Enter в поле ввода пароля.

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

CREATE DATABASE wordpress; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY ' W0rdpre$S ';
  • Выдайте пользователю права на любые действия в базе данных.
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
  • Сохраните изменения и отключитесь от сервера баз данных.
FLUSH PRIVILEGES; EXIT;

Настройте WordPress

  • Скачайте последнюю версию WordPress в корневой каталог веб-сервера Apache /var/www/html и распакуйте архив.
sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzvf latest.tar.gz

Все эти действия выполняются в корневом каталоге.

Это базовый вариант установки WordPress. Есть более длинный путь, когда мы создаем директорию для файлов WordPress в корневом каталоге, в рамках этого гайда такой вариант не рассматриваем.

  • Используйте команду mv, чтобы переместить распакованные файлы в директорию var/www/html.
sudo mv wordpress/*.

Укажите первым параметром все файлы из распакованной папки wordpress: wordpress/*. Вторым параметром укажите, что файлы надо переместить в текущую папку var/www/html: .

  • Удалите пустую папку WordPress и скачанный архив.
sudo rm -rf wordpress latest.tar.gz
  • Проверьте, что в папке var/www/html содержатся файлы сайта.

  • Среди скачанных файлов WordPress есть файл wp-config-sample.php с примером конфигурации. Переименуйте его в wp-config.php.

sudo cp wp-config-sample.php wp-config.php
  • Отредактируйте конфигурацию: заполните поля в соответствие с параметрами, которые вы создали для базы данных.
sudo nano wp-config.php
  • Сохраните файл перед выходом.

Настройте веб-сервер Apache

  • Сделайте пользователя веб-сервера по умолчанию www-data владельцем корневого каталога var/www/html и всех его файлов.
sudo chown -R www-data:www-data /var/www/html
  • Выдайте пользователю права внутри корневого каталога.
sudo find /var/www/html/ -type d -exec chmod 750 {} \; sudo find /var/www/html/ -type f -exec chmod 640 {} \;

Настройте доступ к директориям корневого каталога. Командой find найдите все директории в корневом каталоги и примените к ним команду chmod. В параметрах команды chmod укажите уровень доступа для пользователя, группы и всех остальных. Пользователю выдайте полный доступ к директориям (доступ 7), группе — права на чтение и выполнение (доступ 5), у остальных никаких прав быть не должно (доступ 0).

Аналогично настройте доступ к файлам в корневом каталоге. Пользователю выдайте права на чтение и запись (доступ 6), группе — только на чтение (доступ 4), у остальных никаких прав быть не должно (доступ 0).

В общем случае все папки должны быть исполняемыми, чтобы был доступ к файлам в них: полный доступ: 7 - RWX, доступ на чтение и выполнение: 5 – R-X. При этом файлы не должны быть исполняемыми: доступ к ним может быть либо на чтение и запись (6 – RW-), либо только на чтение (4 – R--). В частных случаях права могут отличаться.

  • Создайте новый конфигурационный файл Apache и назовите его wordpress.com.
sudo nano /etc/apache2/sites-available/wordpress.conf
  • Вставьте в конфигурационный файл конфигурацию.
<VirtualHost *:80> ServerAdmin <адрес почты> DocumentRoot /var/www/html ServerName <IP-адрес виртуальной машины> <Directory /var/www/html/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Конфигурация будет применяться ко всем http-запросам, отправленным на TCP-порт 80 хоста.

Почту, которую вы укажете, Apache будет отображать во время ошибок.

DocumentRoot var/www/html – это корневой каталог.

В ServerName укажите доменное имя сайта или публичный адрес хоста.

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

  • Активируйте конфигурационный файл.
sudo a2ensite wordpress.conf
  • Перезапустите службу Apache, чтобы настройки применились.
sudo systemctl restart apache2

Настройте группу безопасности для доступа по http и назначьте ее на виртуальную машину

  • В личном кабинете в левом верхнем углу нажмите на иконку из 9 точек, введите в поисковой строке «Группы безопасности», перейдите на страницу сервиса и нажмите «Создать группу безопасности».
  • Введите название группы безопасности sg-http-access.
  • Нажмите «Добавить правило» в разделе «Правила входящего трафика».
  • Выберите протокол TCP.
  • Укажите порт 80.
  • В поле «Источник» укажите IP-адрес 0.0.0.0/0.
  • Дважды нажмите «Создать».
  • В личном кабинете в левом верхнем углу нажмите на иконку из 9 точек, введите в поисковой строке «Виртуальные машины», перейдите на страницу сервиса и в списке кликните на имя созданной виртуальной машины.

  • Перейдите в раздел «Сетевые параметры».

  • В разделе «Подсети» кликните на три серые точки напротив сетевого интерфейса и выберите из выпадающего списка «Изменить группы безопасности».

  • В выпадающем меню группы безопасности выберите группу sg-http-access.

  • Нажмите «Сохранить».

Закончите установку WordPress через веб-интерфейс

  • Зайдите на новый сайт.
  • В строке браузера введите http://<IP-адрес или доменное имя хоста>/index.php.
  • В открывшемся интерфейсе выберите английский язык, назовите сайт и задайте логин и пароль администратора сайта.
  • Запустите установку WordPress. Этот процесс может занять длительное время.
  • Когда WordPress установится, кликните на кнопку login и введите логин и пароль из шага 3.

Мы рассмотрели простой сценарий, как можно развернуть WordPress на виртуальной машине в облаке Cloud.ru Evolution. В инструкции мы не затрагивали, например, вопросы информационной безопасности, создание SSL-сертификатов, установку WAF и защиты от DDoS. И не раскрывали тему отказоустойчивости: как создать несколько серверов и балансировать нагрузку между ними. Но для старта достаточно тех шагов, о которых мы рассказали.

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

1
Начать дискуссию