Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Cтатический сайт в Object Storage
    • Cайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки через Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки через Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Сайт на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Веб-сайт на базе 1С-Битрикс
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на Opencart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage через CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage через Bacula
    • Резервное копирование в Object Storage через Veritas Backup Exec
    • Оцифровка архива в Yandex Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых виртуальных машинах
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов ВМ с помощью Jenkins
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Создание кластера Windows-серверов «1С:Предприятия» с базой данных SQL Server
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
  • Построение Data Platform
    • Все руководства
    • Синхронизация данных из MySQL с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в MySQL
    • Настройка управляемой базы данных в кластере ClickHouse для Graphite
    • Обмен данными между Yandex Managed Service for ClickHouse и Yandex Data Proc
    • Импорт базы данных в Yandex Data Proc с использованием Sqoop
    • Использование Confluent Schema Registry с Yandex Managed Service for Apache Kafka®
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Миграция данных в Yandex Managed Service for Apache Kafka®
    • Перенос коллекций из MongoDB в Yandex Managed Service for MongoDB
    • Миграция базы данных в Yandex Managed Service for SQL Server
    • Перенос данных из PostgreSQL в ClickHouse с помощью Yandex Data Transfer
    • Настройка Kafka Connect для работы с кластером Yandex Managed Service for Apache Kafka®
    • Настройка Yandex Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Миграция в Yandex Managed Service for Elasticsearch с помощью Reindex API
    • Использование скриптов инициализации для настройки GeeseFS в Yandex Data Proc
  • Windows в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая маршрутизация
    • Все руководства
    • Маршрутизация с помощью NAT-инстанса
    • Создание VPN-туннеля
    • Установка виртуального роутера Cisco CSR1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Настройка сети для Yandex Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из CSV-файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью SQL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
  1. Веб-сервис
  2. Сайт на базе Joomla с БД PostgreSQL

Сайт на базе Joomla с БД PostgreSQL

Статья создана
Yandex Cloud
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте виртуальную машину для Joomla
  • Создайте кластер баз данных PostgreSQL
  • Установите Joomla и дополнительные компоненты
  • Настройте веб-сервер Apache2
  • Настройте Joomla
  • Загрузите файлы веб-сайта
  • Настройте DNS
    • Добавьте зону
    • Добавьте ресурсные записи
    • Делегируйте доменное имя
  • Проверьте работу сайта
  • Как удалить созданные ресурсы

С помощью этой инструкции вы научитесь разворачивать сайт на базе CMS Joomla с базой данных под управлением СУБД PostgreSQL в инфраструктуре Yandex Cloud.

Чтобы настроить статический веб-сайт на Joomla:

  1. Создайте виртуальную машину для Joomla.
  2. Создайте кластер БД PostgreSQL.
  3. Установите Joomla и дополнительные компоненты.
  4. Настройте веб-сервер Apache2.
  5. Настройте Joomla.
  6. Загрузите файлы веб-сайта.
  7. Настройте DNS.
  8. Проверьте работу сайта.

Если сайт вам больше не нужен, удалите все используемые им ресурсы.

Подготовьте облако к работе

Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Убедитесь, что в выбранном каталоге есть сеть с подсетями в зонах доступности ru-central1-a, ru-central1-b и ru-central1-c. Для этого на странице каталога выберите сервис Virtual Private Cloud. Если в списке есть сеть — нажмите на нее, чтобы увидеть список подсетей. Если нужных подсетей или сети нет, создайте их.

Необходимые платные ресурсы

В стоимость поддержки сайта на Joomla входит:

  • плата за постоянно запущенную ВМ (см. тарифы Yandex Compute Cloud);
  • плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).
  • плата за кластер БД PostgreSQL (см. тарифы Yandex Managed Service for PostgreSQL);
  • стоимость исходящего трафика из Yandex Cloud в интернет (см. тарифы Yandex Compute Cloud).

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

  1. На странице каталога в консоли управления нажмите кнопку Создать ресурс и выберите Виртуальная машина.

  2. В поле Имя введите имя ВМ — joomla-pg-tutorial-web.

  3. Выберите зону доступности, в которой будет находиться ВМ.

  4. Выберите публичный образ CentOS Stream.

  5. В блоке Вычислительные ресурсы:

    • Выберите платформу.
    • Укажите необходимое количество vCPU и объем RAM.

    Для функционального тестирования хватит минимальной конфигурации:

    • Платформа — Intel Ice Lake.
    • Гарантированная доля vCPU — 20%.
    • vCPU — 2.
    • RAM — 1 ГБ.
  6. В блоке Сетевые настройки выберите, к какой подсети необходимо подключить ВМ при создании.

  7. Укажите данные для доступа на ВМ:

    • В поле Логин введите имя пользователя.
    • В поле SSH ключ вставьте содержимое файла открытого ключа.
      Пару ключей для подключения по SSH необходимо создать самостоятельно. Для создания ключей используйте сторонние инструменты, например утилиты ssh-keygen в Linux и macOS или PuTTYgen в Windows.
  8. Нажмите кнопку Создать ВМ.

Создание ВМ может занять несколько минут.

При создании ВМ назначаются IP-адрес и имя хоста (FQDN). Эти данные можно использовать для доступа по SSH.

Создайте кластер баз данных PostgreSQL

  1. На странице каталога нажмите кнопку Создать ресурс и выберите Кластер PostgreSQL.
  2. В поле Имя введите имя кластера — joomla-pg-tutorial-db-cluster.
  3. В разделе Класс БД выберите b2.medium.
  4. В разделе Размер хранилища укажите 10 ГБ.
  5. В разделе База данных укажите:
    • Имя БД — joomla-pg-tutorial-db.
    • Имя пользователя — joomla.
    • Пароль — пароль, который вы будете использовать для доступа к БД.
  6. В списке Сеть выберите сеть, к которой подключена ваша ВМ.
  7. В разделе Хосты добавьте еще два хоста в других зонах доступности. При создании хостов не включайте для них Публичный доступ.
  8. Нажмите кнопку Создать кластер.

Создание кластера БД может занять несколько минут.

Установите Joomla и дополнительные компоненты

После того как ВМ joomla-pg-tutorial-web перейдет в статус RUNNING, выполните:

  1. В блоке Сеть на странице ВМ в консоли управления найдите публичный IP-адрес ВМ.

  2. Подключитесь к ВМ по протоколу SSH. Для этого можно использовать утилиту ssh в Linux и macOS и программу PuTTY для Windows.

    Рекомендуемый способ аутентификации при подключении по SSH — с помощью пары ключей. Не забудьте настроить использование созданной пары ключей: закрытый ключ должен соответствовать открытому ключу, переданному на ВМ.

  3. Скачайте и распакуйте архив с Joomla:

    CentOS Stream
    sudo mkdir -p /var/www/html/
    curl https://downloads.joomla.org/cms/joomla3/3-8-7/Joomla_3-8-7-Stable-Full_Package.tar.gz?format=gz -o Joomla_3-8-7-Stable-Full_Package.tar.gz -L
    sudo mv Joomla_3-8-7-Stable-Full_Package.tar.gz /var/www/html/
    (cd /var/www/html/ && sudo tar -zxvf Joomla_3-8-7-Stable-Full_Package.tar.gz)
    sudo rm /var/www/html/Joomla_3-8-7-Stable-Full_Package.tar.gz
    sudo mv /var/www/html/htaccess.txt /var/www/html/.htaccess
    
  4. Установите дополнительные компоненты:

    CentOS Stream
    sudo dnf install epel-release
    sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    sudo yum -y install --enablerepo remi-modular httpd php php-pgsql php php-common php-mbstring php-zip php-xml nano wget php-json
    sudo dnf module enable postgresql:13
    sudo dnf install postgresql-server
    
  5. Получите и настройте использование SSL-сертификата:

    CentOS Stream
    sudo mkdir ~apache/.postgresql
    sudo wget "https://crls.yandex.net/allCLCAs.pem" -O ~apache/.postgresql/root.crt
    sudo chmod 0600 ~apache/.postgresql/root.crt
    sudo chown -R apache:apache ~apache/.postgresql
    

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

  1. Выполните базовую настройку Apache2:

    CentOS Stream
    sudo chown -R apache /var/www/html/
    
  2. Задайте настройки виртуального хоста в конфигурационном файле Apache2. Вы можете отредактировать файл с помощью редактора nano:

    CentOS Stream
    sudo nano /etc/httpd/conf.d/joomla.conf
    

    Приведите файл к виду:

    <VirtualHost *:80 [::]:80>
      ServerAdmin webmaster@localhost
      DocumentRoot /var/www/html/
    
      <Directory /var/www/html/>
        DirectoryIndex index.php index.html
        DirectorySlash off
        RewriteEngine on
        RewriteBase /
        AllowOverride all
      </Directory>
    </VirtualHost>
    
  3. Перезапустите веб-сервер:

    CentOS Stream
    sudo service httpd restart
    
  4. Измените настройки:

    CentOS Stream
    sudo restorecon -R /var/www/html
    sudo setsebool -P httpd_can_network_connect 1
    

Настройте Joomla

Настройте Joomla по инструкции на сайте проекта. В процессе настройки вам потребуются параметры подключения к БД.

  1. Получите адреса хостов кластера БД в консоли управления:

    1. Откройте каталог, в котором создан кластер БД.
    2. Выберите сервис Managed Service for PostgreSQL.
    3. Выберите кластер joomla-pg-tutorial-db-cluster.
    4. Откройте вкладку Хосты.
    5. В колонке Адрес (доменное имя) найдите адреса хостов.
  2. На шаге Database в веб-установщике Joomla заполните поля:

    • Тип базы данных: PostgreSQL.

    • Имя сервера базы данных:

      <адрес хоста 1>,<адрес хоста 2>,<адрес хоста 3> port=6432 sslmode=verify-full target_session_attrs=read-write
      
    • Имя пользователя: joomla.

    • Пароль: укажите пароль пользователя БД.

    • Имя базы данных: joomla-pg-tutorial-db.

  3. Для проверки безопасности Joomla! может потребовать создать или удалить специальный тестовый файл. На ВМ перейдите в каталог /var/www/html/installation и создайте или удалите там указанный файл.

  4. Создайте пустой файл configuration.php для сохранения конфигурации и настройте права для записи в каталог:

    sudo touch /var/www/html/configuration.php
    sudo chmod 655 /var/www/html/configuration.php
    sudo chown -R apache:apache /var/www/html/
    sudo restorecon -R /var/www/html
    
  5. После завершения установки удалите директорию Installation. Это требование безопасности Joomla!:

    sudo rm -rf /var/www/html/Installation
    

Загрузите файлы веб-сайта

  1. В блоке Сеть на странице ВМ в консоли управления найдите публичный IP-адрес ВМ.

  2. Подключитесь к ВМ по протоколу SSH.

  3. Выдайте права на запись для вашего пользователя на директорию /var/www/html:

    sudo chown -R "$USER":apache /var/www/html
    
  4. Загрузите на ВМ файлы веб-сайта с помощью протокола SCP.

    Linux/macOS
    Windows

    Используйте утилиту командной строки scp:

    scp -r <путь до директории с файлами> <имя пользователя ВМ>@<IP-адрес виртуальной машины>:/var/www/html
    

    С помощью программы WinSCP скопируйте локальную директорию с файлами в директорию /var/www/html на ВМ.

Настройте DNS

Доменное имя, которое вы хотите использовать для веб-сайта, нужно связать с IP-адресом созданной ВМ joomla-pg-tutorial-web. Для управления доменом можно использовать сервис Cloud DNS.

В инструкции ниже описана настройка DNS для доменного имени example.com.

Добавьте зону

Чтобы добавить публичную зону:

  1. Откройте раздел Cloud DNS в каталоге, где требуется создать зону DNS.
  2. Нажмите кнопку Создать зону.
  3. Задайте настройки зоны:
    • Имя зоны: example-zone-1.
    • Зона: example.com.. Укажите ваш зарегистрированный домен.
    • Тип — Публичная.
  4. Нажмите кнопку Создать.

Добавьте ресурсные записи

Создайте в публичной зоне записи DNS:

  1. В блоке Сеть на странице ВМ в консоли управления найдите публичный IP-адрес ВМ.
  2. Создайте запись типа А:
    • Откройте раздел Cloud DNS в каталоге, где находится зона example.com.
    • Выберите зону example.com из списка.
    • Нажмите кнопку Создать запись.
    • Задайте параметры записи:
      • Имя: оставьте пустым.
      • Тип записи: оставьте значение А.
      • TTL (время кэширования записи): оставьте значение по умолчанию.
      • Значение: введите публичный адрес вашей ВМ.
    • Нажмите кнопку Создать.
  3. Создайте запись типа CNAME:
    • Выберите зону example.com из списка.
    • Нажмите кнопку Создать запись.
    • Задайте параметры записи:
      • Имя: www.
      • Тип записи: выберите значение CNAME.
      • TTL (время кэширования записи): оставьте значение по умолчанию.
      • Значение: введите example.com.
    • Нажмите кнопку Создать.

Делегируйте доменное имя

Делегирование — это перенос ответственности с серверов регистратора на ваши серверы. Для домена создаются ресурсные записи типа NS (ns1.yandexcloud.net и ns2.yandexcloud.net).

Чтобы делегировать домен, укажите для него DNS-серверы в личном кабинете регистратора.

Делегирование происходит не сразу. Серверы интернет-провайдеров обычно обновляют записи до 24 часов (86400 секунд). Это обусловлено значением TTL, в течение которого кэшируются записи для доменов.

Проверить делегирование домена можно с помощью сервиса Whois или утилиты dig:

dig +short NS example.com

Результат:

ns2.yandexcloud.net.
ns1.yandexcloud.net.

Проверьте работу сайта

Чтобы проверить работу сайта, введите в браузере его IP-адрес или доменное имя:

  • http://<публичный IP-адрес виртуальной машины>.
  • http://www.example.com.

Как удалить созданные ресурсы

Чтобы перестать платить за развернутый сервер и БД, достаточно удалить созданную ВМ joomla-pg-tutorial-web и кластер Managed Service for PostgreSQL joomla-pg-tutorial-db-cluster.

Если вы зарезервировали статический публичный IP-адрес специально для этой ВМ:

  1. Откройте сервис Virtual Private Cloud в вашем каталоге.
  2. Перейдите на вкладку IP-адреса.
  3. Найдите нужный адрес, нажмите значок и выберите пункт Удалить.

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте виртуальную машину для Joomla
  • Создайте кластер баз данных PostgreSQL
  • Установите Joomla и дополнительные компоненты
  • Настройте веб-сервер Apache2
  • Настройте Joomla
  • Загрузите файлы веб-сайта
  • Настройте DNS
  • Добавьте зону
  • Добавьте ресурсные записи
  • Делегируйте доменное имя
  • Проверьте работу сайта
  • Как удалить созданные ресурсы