• Czas czytania ~5 min
  • 29.03.2024

Wraz z wydaniem Laravela 11 pojawia się zupełnie nowy pakiet websocket pierwszej firmy o nazwie Reverb. Reverb zastępuje potrzebę korzystania z serwera websocket innej firmy, takiego jak Soketi lub Ratchet, i pozwala bazie kodu działać zarówno jako klient, jak i serwer websocket, pomagając utrzymać porządek i porządek w projekcie, a nie polegać na tym, co często jest starszym, nieutrzymywanym pakietem.

W tym przewodniku przejdziemy przez konfigurację zupełnie nowego projektu Laravel 11, instalację Reverb, a następnie wdrożenie go na serwerze bezpośrednio z GitHub. Omówimy również, jak skonfigurować serwer, aby działał jako host Reverb za pomocą nadzorcy.

Tworzenie nowego projektu

Laravel 11 Aby rozpocząć tworzenie projektu, skorzystamy z pakietu Laravel Installer. Zapewnia to wygodny wiersz poleceń do zainstalowania i ustawienia niektórych podstaw instalacji Laravel.

Jeśli nie masz instalatora Laravela lub chcesz użyć innej metody, oficjalna dokumentacja Laravela obejmuje kilka innych sposobów tworzenia nowego projektu.

laravel new laravel-reverb-demo

Powyższe polecenie utworzy nowy projekt w podkatalogu. Podczas instalacji zostaniesz poproszony o kilka pytań dotyczących tego, którego serwera bazy danych chcesz użyć (używamy SQLite w naszym demo, ale możesz wybrać preferowaną usługę bazy danych), czy chcesz zainstalować Laravel Breeze lub Jetstream i czy chcesz zainicjować repozytorium git (wybierz tak, aby postępować zgodnie z tym przewodnikiem).

Po zainstalowaniu aplikacji możesz sprawdzić ją lokalnie, korzystając z lokalnego serwera WWW, takiego jak Valet, lub korzystając z narzędzia PHP serve z wiersza poleceń dostarczonego przez Laravel:

php artisan serve

Instalacja Laravela Reverb

Teraz, gdy masz już uruchomiony świeży projekt Laravel, nadszedł czas, aby skonfigurować Reverb. Dzięki Laravelowi 11 stało się to niezwykle proste. Po prostu przejdź do swojego projektu w terminalu i uruchom polecenie instalacji:

php artisan install:broadcasting

Podczas instalacji zostaniesz zapytany, czy chcesz zainstalować i zbudować zależności węzła Reverb, wybierz tak. Po zakończeniu budowy instalowany jest Reverb.

Konfiguracja pogłosu

Laravela Po zainstalowaniu pogłosu nadejdzie czas, aby skonfigurować go do pracy z projektem. Może to obejmować dostosowanie konfiguracji lub zaimplementowanie jej w istniejącej bazie kodu.

Zalecamy zapoznanie się z oficjalną dokumentacją Reverb , ponieważ każdy przypadek użycia może się tutaj nieznacznie różnić. Gdy będziesz zadowolony, że działa zgodnie z oczekiwaniami dla Twojego projektu, możesz przejść do następnego kroku, którym jest wdrożenie projektu.

Wdrażanie aplikacji

Laravel Reverb Po uruchomieniu pogłosu i zaimplementowaniu go lokalnie w razie potrzeby, będziesz chciał wdrożyć go na swoim serwerze.

Zarządzanie witrynami ServerAuth umożliwia wdrażanie witryn bezpośrednio z usługi GitHub, z automatycznym wdrażaniem za każdym razem, gdy wypychasz do gałęzi produkcyjnej. Tutaj szczegółowo opisujemy, jak skonfigurować projekt Reverb na serwerze zarządzanym za pomocą ServerAuth.

W pozostałej części tego przewodnika założymy, że projekt został zatwierdzony w production gałęzi w usłudze GitHub i skonfigurowano serwer za pomocą usługi ServerAuth. Jeśli jeszcze tego nie zrobiłeś, możesz zapoznać się z naszymi innymi przewodnikami na temat konfiguracji serwera. Mamy również przewodniki dotyczące konfiguracji nowego serwera od DigitalOcean i Hetzner.

1. Dodaj nową witrynę

Na stronie zarządzania serwerem w ServerAuth kliknij link "Witryny" na pasku bocznym po lewej stronie. Jeśli serwer nie został jeszcze skonfigurowany do hostowania witryny, zostanie wyświetlony monit o jego zainstalowanie.

ServerAuth celowo nie instaluje funkcji na twoim serwerze, chyba że planujesz z nich korzystać. Po kliknięciu przycisku instalacji serwer zostanie automatycznie skonfigurowany z Nginx i PHP.

Po włączeniu obsługi witryny na serwerze kliknij przycisk Dodaj witrynę w prawym górnym rogu, aby rozpocząć konfigurowanie projektu. Zostaniesz poproszony o podanie nazwy domeny, typu witryny (wybierz z listy "PHP lub Statyczny HTML"), wersji PHP (wybierz 8.3 lub nowszą) i użytkownika (możesz również utworzyć nowego użytkownika specyficznego dla tej witryny, jeśli chcesz). Pamiętaj, aby zaznaczyć również pole SSL włączone, chyba że chcesz użyć domeny tymczasowej, w takim przypadku zaznacz pole "Włącz domenę tymczasową". Na koniec kliknij przycisk Dodaj witrynę, aby rozpocząć proces konfiguracji.

ServerAuth skonfiguruje teraz serwer WWW dla Twojej witryny. Gdy to zrobisz, zobaczysz pulpit nawigacyjny witryny, który zapewnia ogólny przegląd witryny.

Oto jak wygląda konfiguracja naszej witryny:

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

2. Wdróż swoją witrynę

Teraz, po skonfigurowaniu nowej pustej witryny, musimy połączyć ją z projektem GitHub. Jeśli jeszcze tego nie zrobiono, połącz swoje konto GitHub z kontem ServerAuth tutaj. Umożliwi to ServerAuth automatyczne pobranie projektu na serwer.

Następnie kliknij przycisk "Zainstaluj aplikację" na stronie przeglądu witryny i wybierz konto GitHub, które ma dostęp do repozytorium projektu.

Wprowadź nazwę repozytorium w polu tekstowym (np. twojanazwa/twój projekt) i wybierz gałąź, którą chcesz wdrożyć.

Po wybraniu gałęzi będziesz mieć możliwość włączenia automatycznych wdrożeń i uruchamiania migracji. Oto jak wygląda nasz:

A screenshot showing how to configure ServerAuth for Laravel Reverb deployments

Po wdrożeniu projektu sprawdź, czy masz do niego dostęp, zanim przejdziesz dalej.

3. Włączanie pogłosu

Laravel: Teraz, gdy Twoje witryny działają, nadszedł czas, aby włączyć Laravel Reverb. W tym celu skorzystamy z wbudowanego zarządzania demonami ServerAuth Supervisor.

W tym przykładzie będziemy używać tylko konfiguracji Supervisor, jednak Reverb obsługuje również uruchamianie przez Nginx, co jest omówione w oficjalnej dokumentacji. Jeśli chcesz to zrobić na swoim serwerze ServerAuth i zachować porządek, możesz utworzyć plik "wstępnego ładowania", który załaduje się przed główną konfiguracją nginx Twojej witryny, może on zawierać konfigurację nginx specyficzną dla Reverb. Aby to dodać, umieść go w katalogu /etc/nginx/serverauth/sites/yourdomain.com/reverb.conf.pre , aby automatycznie załadować go do konfiguracji witryny.

Aby skonfigurować Reverb do korzystania z Supervisora, przejdź do swojego serwera w ServerAuth i wybierz "Demony" z paska bocznego. Jeśli nie zainstalowałeś jeszcze programu Supervisor, zostanie wyświetlony przycisk umożliwiający jego zainstalowanie.

Po zainstalowaniu możesz dodać nowego demona dla pogłosu. Kluczowymi częściami są ścieżka do projektu i polecenie do uruchomienia. Pogłos można uruchomić za pomocą rzemieślnika reverb:start z opcją.

Oto jak wygląda nasze demo:

A screenshot showing the Laravel Reverb Supervisor Daemon configuration

Skonfigurowałeś teraz Reverb i masz go uruchomionego na swoim serwerze! Jeśli przejdziesz do portu 8080 we wdrożonej lokacji, zobaczysz domyślny komunikat "Nie znaleziono" pogłosów. Oznacza to, że Reverb jest uruchomiony i nie podjęto żadnej akcji, możesz teraz zacząć korzystać z websocketów w swojej witrynie.

Najczęstsze problemy

  1. Wielu dostawców serwerów wyłącza niektóre porty na poziomie hosta. Jeśli używasz dostawcy, takiego jak AWS lub Azure, może być konieczne otwarcie portu 8080 w ich zaporze (czasami nazywanego na ich platformach grupą zabezpieczeń).

  2. Reverb wymaga Laravela 11 i minimum PHP 8.2. Jeśli domyślna wersja PHP serwera jest starsza, pamiętaj o odwołaniu się do pełnej ścieżki do wybranej wersji PHP. Na serwerach Ubuntu zarządzanych przez ServerAuth będzie to zazwyczaj /usr/bin/php8.x

Używanie ServerAuth do wdrażania

projektu Laravel Laravel oferuje niesamowitą elastyczność i łatwość programowania, umożliwiając tworzenie złożonych aplikacji w mgnieniu oka. Dzięki ServerAuth możesz wdrażać swoje projekty Laravel bezpośrednio z repozytorium Git zarówno w witrynach na żywo, jak i w witrynach przejściowych.

W połączeniu z wbudowaną bazą danych, cronjob i zarządzaniem harmonogramem, ServerAuth jest idealnym pomocnikiem, który sprawi, że hosting serwera Laravel będzie dziecinnie prosty!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297