• Час читання ~6 хв
  • 29.03.2024

З випуском Laravel 11 з'являється абсолютно новий пакет вебсокетів від сторони під назвою Reverb. Reverb замінює потребу в сервері веб-сокетів третьої сторони, такому як Soketi або Ratchet, і дозволяє вашій кодовій базі діяти як клієнт вебсокета, так і сервер, допомагаючи підтримувати ваш проект красивим і охайним, а не залежати від застарілих пакетів, які не підтримуються.

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

Створення нового проекту Laravel 11 Щоб

розпочати створення вашого проекту, ми скористаємося пакетом Laravel Installer. Це забезпечує зручний командний рядок для встановлення та встановлення деяких основ вашої інсталяції Laravel.

Якщо у вас немає інсталятора Laravel або ви хочете скористатися іншим методом, офіційна документація Laravel охоплює кілька інших способів створення нового проекту.

laravel new laravel-reverb-demo

Наведена вище команда створить новий проект у підкаталозі. Під час встановлення вам буде поставлено декілька запитань про те, який сервер баз даних ви хочете використовувати (ми використовуємо SQLite для нашої демонстрації, але не соромтеся вибрати бажаний сервіс баз даних), чи хочете ви встановити Laravel Breeze або Jetstream, і чи хочете ви ініціалізувати репозиторій git (виберіть yes, щоб слідувати цьому посібнику).

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

php artisan serve

Встановлення Laravel Reverb

Тепер, коли у вас є свіжий проект Laravel, настав час налаштувати Reverb. З Laravel 11 це стало неймовірно просто. Просто перейдіть до свого проекту у вашому терміналі та виконайте команду встановлення:

php artisan install:broadcasting

Під час встановлення вас запитають, чи хочете ви встановити та створити залежності вузлів Reverb, виберіть yes. Після завершення створення Reverb встановлюється.

Налаштування Laravel Reverb

Після встановлення Reverb настане час налаштувати його для роботи з вашим проектом. Це може включати налаштування конфігурації або впровадження її у вашу існуючу кодову базу.

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

Розгортання програми

Laravel Reverb Після того, як ви запустите реверберацію та реалізуєте її за потреби локально, ви захочете розгорнути її на своєму сервері.

Керування сайтами ServerAuth дозволяє розгортати сайти безпосередньо з GitHub з автоматичним розгортанням кожного разу, коли ви надсилаєте дані до виробничої гілки. Тут ми докладно розповімо, як налаштувати проект Reverb на сервері, керованому за допомогою ServerAuth.

До кінця цього посібника ми будемо припускати, що ви зафіксували свій проект до гілки production на GitHub і налаштували сервер з ServerAuth. Якщо ви ще цього не зробили, ви можете ознайомитися з іншими нашими посібниками з налаштування сервера. У нас також є посібники з налаштування нового сервера від DigitalOcean та Hetzner.

1. Додайте новий сайт

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

ServerAuth навмисно не встановлює функції на ваш сервер, якщо ви не плануєте їх використовувати. Коли ви натиснете кнопку встановлення, ваш сервер буде автоматично налаштований за допомогою Nginx і PHP.

Після того, як на вашому сервері буде ввімкнено підтримку сайту, натисніть кнопку «Додати сайт» у верхньому правому куті, щоб розпочати налаштування проекту. Вам буде запропоновано вказати доменне ім'я, тип сайту (виберіть "PHP або Static 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 автоматично підтягувати ваш проект до вашого сервера.

Далі натисніть кнопку "Install Application" на сторінці огляду сайту, і виберіть обліковий запис GitHub, який має доступ до вашого репозиторію проекту.

Введіть назву репозиторію в текстове поле (наприклад, вашеім'я/вашпроект) і виберіть гілку, яку ви хочете розгорнути.

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

A screenshot showing how to configure ServerAuth for Laravel Reverb deployments

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

3. Увімкнення Laravel Reverb

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

У цьому прикладі ми будемо використовувати лише налаштування Supervisor, однак Reverb також підтримує запуск через Nginx, що описано в офіційній документації. Якщо ви хочете зробити це на своєму сервері ServerAuth і підтримувати порядок, ви можете створити файл «попереднє завантаження», який завантажиться перед основною конфігурацією 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