Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for Valkey™
  • Начало работы
    • Все руководства
    • Хранение сессий PHP в Yandex Managed Service for Valkey™
    • Миграция базы данных в Yandex Managed Service for Valkey™
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте инфраструктуру
  • Выполните дополнительные настройки
  • Настройте PHP для использования кластера Yandex Managed Service for Valkey™ в качестве хранилища сессий
  • Проверьте сохранение данных сессий PHP в кластере Yandex Managed Service for Valkey™
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Хранение сессий PHP в Yandex Managed Service for Valkey™

Использование кластера Yandex Managed Service for Valkey™ в качестве хранилища сессий PHP

Статья создана
Yandex Cloud
Обновлена 8 апреля 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
    • Подготовьте инфраструктуру
    • Выполните дополнительные настройки
  • Настройте PHP для использования кластера Yandex Managed Service for Valkey™ в качестве хранилища сессий
  • Проверьте сохранение данных сессий PHP в кластере Yandex Managed Service for Valkey™
  • Удалите созданные ресурсы

Примечание

В регионе Казахстан доступна только зона доступности kz1-a.

Примечание

В регионе Казахстан доступна только зона доступности kz1-a.

Кластер Yandex Managed Service for Valkey™ можно использовать в качестве хранилища данных о сессиях PHP.

Чтобы настроить кластер Yandex Managed Service for Valkey™ в качестве хранилища сессий PHP:

  1. Настройте PHP для использования кластера Yandex Managed Service for Valkey™ в качестве хранилища сессий.
  2. Проверьте сохранение данных сессий PHP в кластере Yandex Managed Service for Valkey™.

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

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

В стоимость поддержки описываемого решения входят:

  • Плата за кластер-приемник Yandex Managed Service for Valkey™: использование вычислительных ресурсов, выделенных хостам, и дискового пространства (см. тарифы Valkey™).
  • Плата за использование публичных IP-адресов, если для хостов кластера включен публичный доступ (см. тарифы Virtual Private Cloud).
  • Плата за ВМ: использование вычислительных ресурсов, хранилища и публичного IP-адреса (см. тарифы Compute Cloud).

Перед началом работыПеред началом работы

Подготовьте инфраструктуруПодготовьте инфраструктуру

Вручную
Terraform
  1. Если вы используете группы безопасности Virtual Private Cloud, настройте их. Добавьте разрешения для протокола TCP в группу безопасности:

    • входящий трафик через порт 22 с любых IP-адресов для SSH;
    • исходящий и входящий трафик через порты 80 и 443 на любые IP-адреса для HTTP/HTTPS;
    • исходящий и входящий трафик через порт 6379 на IP-адреса внутренней сети для Valkey™.

    Подробнее см. Группы безопасности.

  2. Создайте виртуальную машину с LAMP/LEMP в Yandex Compute Cloud любой подходящей вам конфигурации.

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

  3. Создайте кластер Yandex Managed Service for Valkey™ любой подходящей конфигурации. При создании кластера Yandex Managed Service for Valkey™ укажите те же сеть и группы безопасности, что и для ВМ с веб-сервером.

  1. Если у вас еще нет Terraform, установите его.

  2. Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.

  3. Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

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

  5. Скачайте в ту же рабочую директорию файл конфигурации для подходящего типа кластера:

    • redis-cluster-non-sharded-and-vm-for-php.tf — для нешардированного кластера.
    • redis-cluster-sharded-and-vm-for-php.tf — для шардированного кластера.

    В каждом файле описаны:

    • сеть;
    • подсеть;
    • группа безопасности по умолчанию и правила, необходимые для подключения к кластеру и виртуальной машине из интернета;
    • кластер Yandex Managed Service for Valkey™;
    • виртуальная машина.
  6. Укажите в файле конфигурации:

    • Пароль для доступа к кластеру Yandex Managed Service for Valkey™.
    • Идентификатор публичного образа LAMP/LEMP.
    • Логин и путь к файлу открытого ключа, которые будут использоваться для доступа к виртуальной машине. По умолчанию в используемом образе указанный логин игнорируется, вместо него создается пользователь с логином ubuntu. Используйте его для подключения к виртуальной машине.
  7. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  8. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

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

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Выполните дополнительные настройкиВыполните дополнительные настройки

  1. Подключитесь к ВМ с веб-сервером по SSH и настройте его:

    • Установите сертификаты:

      sudo mkdir --parents /usr/local/share/ca-certificates/Yandex/ && \
      sudo wget "https://storage.yandexcloud.kz/cloud-certs/CA.pem" \
          --output-document /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt
      
    • Подготовьте окружение и установите библиотеку phpredis с помощью pecl:

      sudo apt update && \
      sudo apt install php-dev pkg-php-tools redis-tools --yes && \
      sudo pecl channel-update pecl.php.net && \
      sudo pecl install redis
      
    • Станьте владельцем каталога /var/www/html/ и удалите из него все содержимое:

      sudo chown <имя_пользователя> /var/www/html/ --recursive && \
      rm /var/www/html/*
      

Настройте PHP для использования кластера Yandex Managed Service for Valkey™ в качестве хранилища сессийНастройте PHP для использования кластера Yandex Managed Service for Valkey™ в качестве хранилища сессий

  1. Внесите изменения в конфигурационный файл php.ini для вашего веб-сервера.

    Обычно файл php.ini располагается в каталоге:

    • /etc/php/7.2/apache2/ для Apache;
    • /etc/php/7.2/fpm/ для NGINX.

    Уточнить расположение php.ini можно с помощью команды sudo find /etc/ -name php.ini.

    Примечание

    Не нужно вносить изменения в php.ini для PHP CLI.

    Нешардированный кластер
    Шардированный кластер
    [PHP]
    ...
    extension = redis
    ...
    [Session]
    session.save_handler = redis
    session.save_path = "tcp://<FQDN_хоста-мастера_Valkey™>:6379?auth=<пароль>"
    
    [PHP]
    ...
    extension = redis
    ...
    [Session]
    session.save_handler = rediscluster
    session.save_path = "seed[]=<FQDN1>:6379&seed[]=<FQDN2>:6379&seed[]=<FQDN3>:6379&auth=<пароль>"
    

    Где <FQDN1>, <FQDN2> и <FQDN3> — полные доменные имена хостов-мастеров кластера. Например, для кластера из 3-х шардов с паролем password значение параметра session.save_path будет выглядеть так:

    session.save_path = "seed[]=rc1a-t9h8gxqo********.mdb.yandexcloud.kz:6379&seed[]=rc1b-7qxk0h3b********.mdb.yandexcloud.kz:6379&seed[]=rc1c-spy1c1i4********.mdb.yandexcloud.kz:6379&auth=password"
    

    Подробнее про подключение к кластеру см. Подготовка к подключению.

  2. Перезапустите веб-сервер:

    • sudo systemctl restart apache2 для Apache;
    • sudo systemctl restart php7.2-fpm для NGINX.

Проверьте сохранение данных сессий PHP в кластере Yandex Managed Service for Valkey™Проверьте сохранение данных сессий PHP в кластере Yandex Managed Service for Valkey™

  1. Создайте в каталоге /var/www/html/ файл index.php, который будет выводить степени числа 2:

    <?php
    session_start();
    
    $count = isset($_SESSION['count']) ? $_SESSION['count'] : 1;
    
    echo $count;
    
    $_SESSION['count'] = $count * 2;
    

    При каждом обновлении страницы выводимое значение будет увеличиваться. Значение переменной $count будет сохраняться в данных сессии. Для каждой сессии в Valkey™ будет создан уникальный ключ.

  2. Из ВМ подключитесь к кластеру Valkey™ с помощью redis-cli:

    redis-cli -c -h <FQDN_хоста-мастера> -a <пароль>
    

    Введите команду для просмотра хранящихся в Valkey™ ключей:

    KEYS *
    
    (empty list or set)
    

    Из результатов запроса видно, что сейчас в Valkey™ не хранится никаких данных.

  3. Проверьте, сохраняются ли пользовательские сессии при подключении к веб-серверу:

    1. Введите в адресной строке браузера публичный IP-адрес ВМ с веб-сервером. При первом входе будет выведено число 1.
    2. Обновите страницу несколько раз: выводимое значение будет увеличиваться.
    3. Выполните вход на страницу из другого браузера — отсчет начнется с 1.
    4. Обновите страницу несколько раз: выводимое значение также будет увеличиваться.

    Сохранение значения переменной $count между обновлениями страницы браузера говорит о корректной работе настроенного механизма хранения сессий PHP в кластере Yandex Managed Service for Valkey™.

  4. Повторите запрос на просмотр хранящихся в Valkey™ ключей:

    KEYS *
    
    1) "PHPREDIS_SESSION:keb02haicgi0ijeju3********"
    2) "PHPREDIS_SESSION:c5r0mbe1v84pn2b5kj********"
    

    Как видно из результатов запроса, для каждой сессии в Valkey™ создан свой ключ.

Удалите созданные ресурсыУдалите созданные ресурсы

Удалите ресурсы, которые вы больше не будете использовать, чтобы за них не списывалась плата:

Вручную
Terraform
  • Удалите кластер Yandex Managed Service for Valkey™.
  • Удалите виртуальную машину.
  • Если вы зарезервировали публичные статические IP-адреса, освободите и удалите их.
  1. В терминале перейдите в директорию с планом инфраструктуры.

    Важно

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

  2. Удалите ресурсы:

    1. Выполните команду:

      terraform destroy
      
    2. Подтвердите удаление ресурсов и дождитесь завершения операции.

    Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.

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

Предыдущая
Все руководства
Следующая
Миграция базы данных в Yandex Managed Service for Valkey™
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»