• Время чтения ~6 мин
  • 29.03.2024

С выпуском Laravel 11 выходит совершенно новый собственный пакет websocket под названием Reverb. Reverb заменяет необходимость в стороннем веб-сервере, таком как Soketi или Ratchet, и позволяет вашей кодовой базе выступать как в качестве клиента и сервера веб-сокетов, помогая поддерживать ваш проект в хорошем и аккуратном состоянии, а не зависеть от того, что часто является устаревшими неподдерживаемыми пакетами.

В этом руководстве мы собираемся настроить совершенно новый проект Laravel 11, установить Reverb, а затем развернуть его на вашем сервере прямо с GitHub. Мы также рассмотрим, как настроить ваш сервер для работы в качестве хоста реверберации с помощью супервизора.

Создание нового проекта

Laravel 11 Чтобы приступить к созданию вашего проекта, мы собираемся использовать пакет Laravel Installer. Это обеспечивает удобную командную строку для установки и установки некоторых основ вашей установки Laravel.

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

laravel new laravel-reverb-demo

Приведенная выше команда создаст новый проект внутри подкаталога. Во время установки вам будет задано несколько вопросов о том, какой сервер базы данных вы хотите использовать (мы используем SQLite для нашей демонстрации, но не стесняйтесь выбирать предпочитаемый сервис баз данных), хотите ли вы установить Laravel Breeze или Jetstream, и хотите ли вы инициализировать репозиторий Git (выберите «Да», чтобы следовать этому руководству).

После того, как ваше приложение было установлено, вы можете проверить его локально с помощью локального веб-сервера, такого как Valet, или с помощью инструмента PHP serve командной строки, предоставляемого Laravel:

php artisan serve

Установка Laravel Reverb

Теперь, когда у вас есть новый проект Laravel, пришло время настроить Reverb. С Laravel 11 это стало невероятно просто. Просто перейдите к своему проекту в терминале и выполните команду установки:

php artisan install:broadcasting

Во время установки вас спросят, хотите ли вы установить и собрать зависимости Node Reverb, выберите да. После завершения сборки устанавливается Reverb.

Настройка Laravel Reverb

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

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

Развертывание приложения

Laravel Reverb После того, как вы запустили реверберацию и внедрили ее по мере необходимости локально, вы захотите развернуть ее на своем сервере.

Управление сайтами ServerAuth позволяет развертывать сайты непосредственно из GitHub с автоматическим развертыванием при каждой отправке в рабочую ветвь. Здесь мы подробно расскажем, как настроить проект Reverb на сервере, управляемом с помощью ServerAuth.

В оставшейся части этого руководства мы будем считать, что вы зафиксировали свой проект в production ветке на GitHub и настроили сервер с помощью ServerAuth. Если вы еще этого не сделали, вы можете ознакомиться с другими нашими руководствами по настройке сервера. Также у нас есть гайды по настройке нового сервера от DigitalOcean и Hetzner.

1. Добавьте новый сайт

На странице управления сервером в ServerAuth нажмите на ссылку «Сайты» на левой боковой панели. Если ваш сервер еще не настроен для хостинга сайтов, вам будет предложено установить его.

ServerAuth намеренно не устанавливает компоненты на ваш сервер, если вы не планируете их использовать. Когда вы нажмете кнопку установки, ваш сервер будет автоматически настроен на Nginx и PHP.

После того, как поддержка сайта будет включена на вашем сервере, нажмите кнопку «Добавить сайт» в правом верхнем углу, чтобы начать настройку проекта. Вам будет предложено указать доменное имя, тип сайта (выберите из списка «PHP или статический HTML»), версию PHP (выберите 8.3 или более позднюю версию) и пользователя (при желании вы также можете создать нового пользователя, относящегося к этому сайту). Не забудьте также поставить галочку в поле SSL Enabled, если вы не хотите использовать временный домен, и в этом случае установите флажок «Включить временный домен». Наконец, нажмите кнопку «Добавить сайт», чтобы начать процесс установки.

Теперь ServerAuth настроит веб-сервер для вашего сайта. Как только это будет сделано, вам будет показана панель управления сайтом, которая предоставляет общий обзор сайта.

Вот как выглядит настройка нашего сайта:

A screenshot showing how to set up a new site on ServerAuth for Laravel Reverb

2. Развертывание сайта

Теперь, когда вы настроили новый пустой сайт, нам нужно подключить его к проекту GitHub. Если вы еще этого не сделали, свяжите свою учетную запись GitHub с учетной записью ServerAuth здесь. Это позволит ServerAuth автоматически загрузить ваш проект на ваш сервер.

Затем нажмите кнопку «Установить приложение» на странице обзора сайта и выберите учетную запись GitHub, которая имеет доступ к репозиторию вашего проекта.

Введите имя репозитория в текстовое поле (например, yourname/yourproject) и выберите ветку, которую вы хотите развернуть.

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

A screenshot showing how to configure ServerAuth for Laravel Reverb deployments

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

3. Включение реверберации

Laravel Теперь, когда ваши сайты работают, пришло время включить Laravel Reverb. Для этого мы воспользуемся встроенным в ServerAuth управлением

демоном Supervisor.В этом примере мы будем использовать только настройку Supervisor, однако Reverb также поддерживает запуск через Nginx, что описано в официальной документации. Если вы хотите сделать это на вашем сервере ServerAuth и поддерживать порядок, вы можете создать файл 'pre-load', который будет загружаться перед основной конфигурацией nginx вашего сайта, он может содержать конфигурацию nginx, специфичную для Reverb. Чтобы добавить его, поместите его в каталог, /etc/nginx/serverauth/sites/yourdomain.com/reverb.conf.pre чтобы он автоматически загрузился в конфигурацию вашего сайта.

Чтобы настроить Reverb для использования Supervisor, перейдите на свой сервер в ServerAuth и выберите «Демоны» на боковой панели. Если вы еще не установили супервизор, появится кнопка для его установки.

После установки вы можете добавить новый демон для реверберации. Ключевыми частями здесь являются путь к вашему проекту и команда для запуска. Реверберация может быть запущена через artisan с помощью reverb:start опции.

Вот как выглядит наша демонстрация:

A screenshot showing the Laravel Reverb Supervisor Daemon configuration

Теперь вы настроили Reverb и запустили его на своем сервере! Если вы перейдете к порту 8080 на развернутом сайте, вы увидите сообщение Reverbs по умолчанию «Не найдено». Это означает, что Reverb запущен и никаких действий не было предоставлено, теперь вы готовы начать использовать веб-сокеты на своем сайте.

Распространенные проблемы

  1. Многие поставщики серверов отключают определенные порты на уровне хоста. Если вы используете поставщика, такого как AWS или Azure, вам может потребоваться открыть порт 8080 на их брандмауэре (иногда называемом на их платформах группой безопасности).

  2. Для реверберации требуется Laravel 11 и минимум PHP 8.2. Если версия PHP вашего сервера по умолчанию более ранняя, обязательно укажите полный путь к выбранной вами версии PHP. На серверах Ubuntu, управляемых ServerAuth, это, как правило, Использование /usr/bin/php8.x

ServerAuth для развертывания

проекта Laravel Laravel предлагает невероятную гибкость и простоту разработки, позволяя создавать сложные приложения в кратчайшие сроки. С помощью ServerAuth вы можете развертывать свои проекты Laravel прямо из репозитория Git как на действующих, так и на промежуточных сайтах.

В сочетании со встроенной базой данных, cronjob и управлением планировщиком, ServerAuth является идеальным помощником, чтобы сделать хостинг серверов Laravel легким делом!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297