[Документация Yandex Cloud](../../index.md) > [Yandex Cloud Marketplace](../index.md) > Пользователям > [Практические руководства](index.md) > Установка WordPress с помощью Cloud Apps

# Установка WordPress с помощью Cloud Apps

{% note warning %}

Часть ресурсов, необходимых для прохождения практического руководства, доступны только в [регионе Россия](../../overview/concepts/region.md).

{% endnote %}


С помощью этого руководства вы установите и настроите [WordPress](https://wordpress.org/) — систему управления контентом, подходящую как для личных блогов, так и для крупных медиа и коммерческих проектов. Приложение [Cloud Apps](../../cloud-apps/index.md) будет развернуто на виртуальной машине с автоматической настройкой всех необходимых ресурсов, включая веб-сервер и интеграцию с сервисом [Yandex Cloud Postbox](../../postbox/index.md).

Чтобы установить WordPress:

1. [Подготовьте облако к работе](#before-you-begin).
1. [Создайте сеть и подсети VPC](#create-network).
1. [Настройте DNS-зону](#configure-dns).
1. [Создайте секреты Yandex Lockbox](#create-secret).
1. [Установите WordPress, используя Cloud Apps](#install-wordpress).
1. [Настройте WordPress](#configure-wordpress).
1. [Проверьте результат](#check-result).

Если созданные ресурсы вам больше не нужны, [удалите их](#clear-out).


## Подготовьте облако к работе {#before-you-begin}

Зарегистрируйтесь в Yandex Cloud и создайте [платежный аккаунт](../../billing/concepts/billing-account.md):
1. Перейдите в [консоль управления](https://kz.console.yandex.cloud), затем войдите в Yandex Cloud или зарегистрируйтесь.
1. На странице **[Yandex Cloud Billing](https://kz.console.yandex.cloud/billing)** убедитесь, что у вас подключен платежный аккаунт, и он находится в [статусе](../../billing/concepts/billing-account-statuses.md) `ACTIVE` или `TRIAL_ACTIVE`. Если платежного аккаунта нет, [создайте его](../../billing/quickstart/index.md) и [привяжите](../../billing/operations/pin-cloud.md) к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать [каталог](../../resource-manager/concepts/resources-hierarchy.md#folder), в котором будет работать ваша инфраструктура, на [странице облака](https://kz.console.yandex.cloud/cloud).

[Подробнее об облаках и каталогах](../../resource-manager/concepts/resources-hierarchy.md).


### Необходимые платные ресурсы {#paid-resources}

В стоимость поддержки создаваемой инфраструктуры входят:

* Плата за использование виртуальной машины и хранение данных на диске ([тарифы Yandex Compute Cloud](../../compute/pricing.md)).
* Плата за использование публичной DNS-зоны и за публичные DNS-запросы ([тарифы Yandex Cloud DNS](../../dns/pricing.md)).
* Плата за хранение секретов и операции с ними (тарифы [Yandex Lockbox](../../lockbox/pricing.md)).
* Плата за исходящие письма (тарифы [Yandex Cloud Postbox](../../postbox/pricing.md)).


## Создайте сеть и подсети VPC {#create-network}

Создайте [облачную сеть](../../vpc/concepts/network.md) и [подсеть](../../vpc/concepts/network.md#subnet), в которой будет развернута ВМ.

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) перейдите в каталог, в котором будете разворачивать инфраструктуру.
  1. Перейдите в сервис **Virtual Private Cloud**.
  1. В правом верхнем углу нажмите **Создать сеть**.
  1. В поле **Имя** укажите имя сети. Требования к имени:

      * длина — от 3 до 63 символов;
      * может содержать строчные буквы латинского алфавита, цифры и дефисы;
      * первый символ — буква, последний — не дефис.
  
  1. Оставьте включенной опцию **Создать подсети**.
  1. Нажмите **Создать сеть**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Создайте облачную сеть в каталоге по умолчанию:

      ```
      yc vpc network create --name wordpress-network
      ```

  1. Получите список облачных сетей в каталоге:

      ```
      yc vpc network list --folder-id b1g6ci08ma55********
      ```

      Результат:

      ```
      +----------------------+-------------------+
      |          ID          |      NAME         |
      +----------------------+-------------------+
      | enpavfmgapum******** | wordpress-network |
      | enplom7a98s1******** | default           |
      +----------------------+-------------------+
      ```

  1. Выберите `NAME` или `ID` требуемой облачной сети. Создайте подсеть в любой зоне доступности:

      ```
      yc vpc subnet create \
        --network-id enpavfmgapum******** \
        --zone kz1-a \
        --range 192.168.0.0/24
      ```

      Где:

      * `--network-id` — идентификатор облачной сети. При создании подсети указывается облачная сеть, в которой создаются подсеть и CIDR.
      * `--zone` — зона доступности, в которой создается подсеть.
      * `--range` — список внутренних IPv4-адресов, определенных для данной подсети. Например, `10.0.0.0/22` или `192.168.0.0/16`. Адреса должны быть уникальными внутри сети. Минимальный размер подсети — /28, а максимальный размер подсети — /16. Поддерживается только IPv4.

      Требования к названию подсети:

      * длина — от 3 до 63 символов;
      * может содержать строчные буквы латинского алфавита, цифры и дефисы;
      * первый символ — буква, последний — не дефис.

- API {#api}

  Чтобы создать облачную сеть, воспользуйтесь методом REST API [create](../../vpc/api-ref/Network/create.md) для ресурса [Network](../../vpc/api-ref/Network/index.md) или вызовом gRPC API [NetworkService/Create](../../vpc/api-ref/grpc/Network/create.md) и передайте в запросе идентификатор каталога, в котором будет размещена сеть, в параметре `folderId`.

  О том, как узнать идентификатор каталога, читайте в разделе [Получение идентификатора каталога](../../resource-manager/operations/folder/get-id.md).

  Чтобы создать подсеть, воспользуйтесь методом REST API [create](../../vpc/api-ref/Subnet/create.md) для ресурса [Subnet](../../vpc/api-ref/Subnet/index.md) или вызовом gRPC API [SubnetService/Create](../../vpc/api-ref/grpc/Subnet/create.md) и передайте в запросе:

  * Идентификатор каталога, в котором будет размещена подсеть, в параметре `folderId`.
  * Идентификатор сети, в которой будет размещена подсеть, в параметре `networkId`.
  * Идентификатор зоны доступности, в которой будет размещена подсеть, в параметре `zoneId`.
  * Список внутренних IPv4-адресов, определенных для данной подсети, в массиве `v4CidrBlocks[]`. Например, `10.0.0.0/22` или `192.168.0.0/16`. Адреса должны быть уникальными внутри сети. Минимальный размер подсети — `/28`, а максимальный размер подсети — `/16`. Поддерживается только IPv4.

  Чтобы узнать идентификатор подсети, воспользуйтесь методом REST API [list](../../vpc/api-ref/Subnet/list.md) для ресурса [Subnet](../../vpc/api-ref/Subnet/index.md) или вызовом gRPC API [SubnetService/List](../../vpc/api-ref/grpc/Subnet/list.md) и передайте в запросе идентификатор каталога в параметре `folderId`.

{% endlist %}


## Настройте DNS-зону {#configure-dns}

Создайте [публичную DNS-зону](../../dns/concepts/dns-zone.md#public-zones) и делегируйте на нее домен. Подробнее о делегировании домена читайте в [инструкции](../../troubleshooting/dns/how-to/delegate-public-zone.md). В DNS-зоне будут размещаться домены WordPress.

Перед установкой приложения вам необходимо создать публичную DNS-зону и делегировать на нее домен. Подробнее о делегировании домена читайте в [инструкции](../../troubleshooting/dns/how-to/delegate-public-zone.md).

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. [Перейдите](https://kz.console.yandex.cloud/link/dns/) в сервис **Cloud DNS**.
  1. Нажмите кнопку **Создать зону**.
  1. Задайте настройки зоны DNS:
     * **Зона** — укажите ваш зарегистрированный домен, например `example.com.` (с точкой в конце).
     * **Тип** — выберите `Публичная`.
     * **Имя** — укажите имя зоны, например `example-zone`.
  1. Нажмите кнопку **Создать**.

  1. Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов `ns1.yandexcloud.kz` и `ns2.yandexcloud.kz`.

     Делегирование происходит не сразу. Серверы интернет-провайдеров обновляют записи до 24 часов. Проверить делегирование домена можно с помощью [сервиса Whois](https://www.reg.ru/whois/check_site) или утилиты `dig`:

     ```bash
     dig +short NS example.com
     ```

     Результат:

     ```text
     ns2.yandexcloud.kz.
     ns1.yandexcloud.kz.
     ```

- Yandex Cloud CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  1. Создайте публичную зону DNS:

     ```bash
     yc dns zone create \
       --name example-zone \
       --zone example.com. \
       --public-visibility=true
     ```

     Где `--zone` — имя вашего домена, например `example.com.`. Значение параметра `--zone` должно заканчиваться точкой.

     Результат:

     ```text
     id: dns39gihj0ef********
     folder_id: b1g681qpemb4********
     created_at: "2024-09-09T15:23:34.919887Z"
     name: example-zone
     zone: example.com.
     public_visibility: {}
     ```

     Подробнее о команде `yc dns zone create` читайте в [справочнике CLI](../../cli/cli-ref/dns/cli-ref/zone/create.md).

  1. Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов `ns1.yandexcloud.kz` и `ns2.yandexcloud.kz`.

     Делегирование происходит не сразу. Серверы интернет-провайдеров обновляют записи в течение 24 часов.

- API {#api}

  Чтобы создать публичную зону DNS, воспользуйтесь методом REST API [create](../../dns/api-ref/DnsZone/create.md) для ресурса [DnsZone](../../dns/api-ref/DnsZone/index.md) или вызовом gRPC API [DnsZoneService/Create](../../dns/api-ref/grpc/DnsZone/create.md).

  Делегируйте домен на серверы Yandex Cloud. Для этого в личном кабинете вашего регистратора доменных имен укажите адреса DNS-серверов `ns1.yandexcloud.kz` и `ns2.yandexcloud.kz`.

{% endlist %}


## Создайте секреты Yandex Lockbox {#create-secret}

В [секретах](../../lockbox/concepts/secret.md) Yandex Lockbox будут храниться пароль базы данных Managed Service for MySQL®, root-пароль базы данных и пароль администратора WordPress.

{% list tabs group=instructions %}

- Консоль управления {#console}

  Чтобы создать секрет, в котором будет храниться пароль базы данных Managed Service for MySQL®:

  1. Перейдите в сервис **Lockbox**.
  1. Нажмите **Создать секрет**.
  1. В поле **Имя** введите имя секрета: `db-password-secret`.
  1. В поле **Тип секрета** выберите `Пользовательский`.
  1. В поле **Ключ** введите `db_password`.
  1. В поле **Значение** вставьте пароль базы данных Managed Service for MySQL®.
  1. Нажмите **Создать**.

  Аналогичным образом создайте еще два секрета:

  Имя | Ключ | Описание
  --- | --- | ---
  `db-root-password-secret`  | `db_root_password`  | Root-пароль базы данных Managed Service for MySQL®.
  `wp-admin-password-secret` | `wp_admin_password` | Пароль администратора WordPress.


- Yandex Cloud CLI {#cli}

  Чтобы создать секрет, в котором будет храниться пароль базы данных Managed Service for MySQL®, выполните команду:

  ```bash
  yc lockbox secret create \
    --name db-password-secret \
    --payload "[{'key': 'db_password', 'text_value': '<пароль>'}]"
  ```

  Где `text_value` — пароль базы данных Managed Service for MySQL®.

  Результат:

  ```text
  id: e6q0rdjdggjp********
  folder_id: b1g681qpemb4********
  created_at: "2025-07-12T18:23:49.844Z"
  name: db-password-secret
  status: ACTIVE
  current_version:
    id: e6qbp772i014********
    secret_id: e6q0rdjdggjp********
    created_at: "2025-07-12T18:23:49.844Z"
    status: ACTIVE
    payload_entry_keys:
      - db_password
  ```

  Аналогичным образом создайте еще два секрета:

  Имя | Ключ | Описание
  --- | --- | ---
  `db-root-password-secret`  | `db_root_password`  | Root-пароль базы данных Managed Service for MySQL®.
  `wp-admin-password-secret` | `wp_admin_password` | Пароль администратора WordPress.

- API {#api}

  Чтобы создать секрет, воспользуйтесь методом REST API [create](../../lockbox/api-ref/Secret/create.md) для ресурса [Secret](../../lockbox/api-ref/Secret/index.md) или вызовом gRPC API [SecretService/Create](../../lockbox/api-ref/grpc/Secret/create.md).

  Используйте следующие имена и ключи:

  Имя | Ключ | Описание
  --- | --- | ---
  `db-password-secret`       | `db_password`       | Пароль базы данных Managed Service for MySQL®.
  `db-root-password-secret`  | `db_root_password`  | Root-пароль базы данных Managed Service for MySQL®.
  `wp-admin-password-secret` | `wp_admin_password` | Пароль администратора WordPress.

{% endlist %}

{% note info %}

Вы можете не создавать секреты с root-паролем БД и паролем администратора WordPress и не указывать их в настройках приложения, тогда они создадутся автоматически со случайными паролями во время установки приложения.

{% endnote %}


## Установите WordPress {#install-wordpress}

Установите WordPress с помощью Cloud Apps:

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. Перейдите в сервис **Cloud Apps**.
  1. Нажмите **Установить приложение**.
  1. Выберите приложение **WordPress** и нажмите **Использовать**.
  1. Задайте настройки приложения:

      {% note warning %}

      Логин администратора WordPress нельзя изменить после установки приложения.

      {% endnote %}

      #|
      || **Параметр** | **Обязательный** | **Значение по умолчанию** | **Описание** ||
      || **Имя** | Да | — | Название вашего экземпляра WordPress. ||
      || **Описание** | — | — | Описание экземпляра приложения. ||
      || **Сервисный аккаунт** | Да | — | Сервисный аккаунт с ролью `admin` на каталог. Чтобы сервисный аккаунт с необходимыми правами создался во время установки приложения, выберите `Автоматически`. ||
      || **Идентификатор DNS-зоны** | Да | — | Идентификатор DNS-зоны, в которой будет находиться домен приложения. ||
      || **Поддомен сайта** | — | Пустой | Домен, на котором будет доступен основной сайт. Формируется добавлением поддомена к домену DNS-зоны: `site.example.com` или `example.com`, если поддомен не указан. ||
      || **Поддомен админ панели базы данных** | — | `db` | Домен, на котором будет доступна административная панель сайта. Формируется добавлением поддомена к домену DNS-зоны: `db.example.com`. ||
      || **Отправитель почты** | — | `noreply@<домен_сайта>` | Отправитель почты. Используется для настройки SMTP через Yandex Cloud Postbox. ||
      || **Логин администратора WordPress** | — | `admin` | Имя пользователя для учетной записи администратора WordPress. ||
      || **Email администратора WordPress** | Да | — | Адрес электронной почты, который будет использоваться для создания учетной записи администратора WordPress, отправки системных уведомлений и восстановления пароля. ||
      || **ID секрета с паролем администратора WordPress** | — | — | Идентификатор секрета `wp-admin-password-secret` с паролем администратора WordPress, созданный ранее. Если вы не укажете секрет, он будет создан со случайным паролем автоматически во время установки приложения. ||
      || **Подсеть VPC** | Да | — | Подсеть, в которой будет развернута виртуальная машина. ||
      || **Количество vCPU** | — | `2` | Количество ядер vCPU. ||
      || **Объем RAM в GB** | — | `2` | Объем RAM в ГБ. ||
      || **Гарантированная доля vCPU** | — | `100` | Гарантированная доля vCPU в процентах. Доступные значения: 20%, 50% или 100%. ||
      || **Публичный SSH-ключ** | — | — | Ключ добавится в `authorized_keys` пользователя WordPress.
      Рекомендуется указать публичный SSH-ключ, чтобы иметь доступ к ВМ по SSH. Пару ключей для подключения по SSH необходимо [создать самостоятельно](../../compute/operations/vm-connect/ssh.md#creating-ssh-keys). ||
      || **Тип диска** | — | `network-ssd` | Тип диска, который будет подключен к ВМ. ||
      || **Размер диска в GB** | — | `20` | Размер диска, который будет подключен к ВМ, в ГБ. ||
      || **ID секрета с паролем БД** | Да | — | Идентификатор секрета `db-password-secret` с паролем для подключения к кластеру Managed Service for MySQL®, созданного ранее. ||
      || **ID секрета с root паролем БД** | Да | — | Идентификатор секрета `db-root-password-secret` с паролем для подключения к кластеру Managed Service for MySQL®, созданный ранее. ||
      |#

  1. Нажмите **Установить**.

     В открывшемся окне отобразятся ресурсы, которые будут созданы во время установки приложения. После создания всех ресурсов на виртуальной машине будет происходить настройка сайта, установка плагинов и выпуск TLS-сертификатов. Дождитесь завершения установки, она займет 5–10 минут.

{% endlist %}

{% note info %}

При установке приложения автоматически создаются [адрес](../../postbox/concepts/glossary.md#adress) Yandex Cloud Postbox и DNS-запись для его верификации.

{% endnote %}


## Настройте WordPress {#configure-wordpress}

1. Откройте в браузере адрес основного сайта: `https://<домен_сайта>`, где `<домен_сайта>` — поддомен основного сайта или домен DNS-зоны, если поддомен сайта не был указан.
1. Откройте в браузере адрес административной панели: `https://<домен_сайта>/wp-admin`.
1. Войдите в административную панель, используя:
   * **Логин** — логин администратора, который вы указали при установке.
   * **Пароль** — пароль администратора. Если вы не указывали секрет с паролем администратора в настройках приложения, значение пароля можно найти в секрете, который создался автоматически при установке приложения. Имя секрета — `wp-admin-password-secret`.

      {% note info %}

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

      {% endnote %}

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


## Проверьте результат {#check-result}

Убедитесь, что WordPress работает корректно:

1. Откройте в браузере поддомен основного сайта, если указали его при установке. Иначе — домен DNS-зоны. Вы должны увидеть главную страницу WordPress.
1. Создайте тестовый пост:

   1. В административной панели нажмите **Записи** → **Добавить новую**.
   1. Заполните заголовок и содержимое поста.
   1. Загрузите изображение в пост — оно автоматически сохранится в бакет Object Storage.
   1. Опубликуйте пост.

1. Проверьте, что пост доступен на главной странице сайта.
1. Проверьте работу почтовых уведомлений:

   1. В административной панели перейдите в раздел настроек.
   1. Попробуйте восстановить пароль, используя функцию **«Забыли пароль?»**.
   1. Проверьте, что письмо с инструкциями по восстановлению пароля пришло на указанный адрес электронной почты.

   {% note info %}

   Интеграция с Yandex Cloud Postbox поддерживает регистрацию пользователей и восстановление пароля. Массовые рассылки через Yandex Cloud Postbox не поддерживаются, так как для них требуется специальный API.

   {% endnote %}

1. Проверьте установленные плагины:

   1. В административной панели перейдите в раздел **Плагины**.
   1. Убедитесь, что установлены следующие плагины:
      * **S3 Uploads** — для интеграции с сервисом **Yandex Object Storage** для хранения медиафайлов.
      * **WP Mail SMTP** — для интеграции с сервисом **Yandex Cloud Postbox** для отправки почтовых уведомлений.

1. Откройте в браузере домен административной панели БД:

   1. Войдите в административную панель базы данных.
   1. Для входа используйте:
      * **Сервер** — `db`.
      * **Движок** — `MySQL`.
      * **Имя пользователя** — `wordpress`.
      * **Пароль** — пароль базы данных, который вы указали в секрете `db-passwords-secret`.


## Как удалить созданные ресурсы {#clear-out}

Чтобы остановить работу и перестать платить за созданные ресурсы:

1. Удалите адрес Yandex Cloud Postbox и связанную с ним [DNS-запись](../../dns/operations/resource-record-delete.md) — они не удалятся автоматически при удалении приложения.
1. Удалите установленное приложение WordPress:

   1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором установлено приложение.
   1. Перейдите в сервис **Cloud Apps**.
   1. Найдите установленное приложение WordPress в списке.
   1. Нажмите ![image](../../_assets/console-icons/ellipsis.svg) рядом с приложением и выберите **Удалить**.
   1. Подтвердите удаление приложения.

1. [Удалите](../../dns/operations/zone-delete.md) публичную DNS-зону.
1. [Удалите](../../lockbox/operations/secret-delete.md) секреты Yandex Lockbox.
1. Удалите [подсети](../../vpc/operations/subnet-delete.md) и [сеть](../../vpc/operations/network-delete.md) VPC.