Jak aktywować moduł Swoole dla PHP w ServBay
ServBay to potężne, lokalne środowisko do tworzenia aplikacji webowych, wyposażone w liczne narzędzia oraz rozszerzenia potrzebne deweloperom, w tym również w wysokowydajne rozszerzenie Swoole dla PHP. Swoole to asynchroniczny, współbieżny oraz wydajny silnik sieciowy zaprojektowany specjalnie dla PHP, który znacząco zwiększa wydajność i skalowalność aplikacji PHP. W tym artykule wyjaśniamy krok po kroku, jak w prosty sposób aktywować rozszerzenie Swoole w ServBay, aby wykorzystać jego możliwości i tworzyć jeszcze bardziej efektywne aplikacje oraz usługi PHP.
O frameworku Swoole
Swoole to projekt open source, który wprowadza do PHP zaawansowane funkcje na wzór Node.js: asynchroniczne I/O, współprogramowanie oraz wieloprocesowość. Dzięki Swoole programiści PHP mogą odejść od ograniczającego modelu synchronicznego blokowania, typowego dla klasycznych serwerów WWW (takich jak Apache/Nginx + PHP-FPM) i budować wysokowydajne usługi pracujące w pamięci operacyjnej, na przykład:
- Wydajne API Gateway
- Aplikacje do komunikacji w czasie rzeczywistym (WebSocket)
- Serwery gier
- Aplikacje IoT (Internet rzeczy)
- Usługi backendowe i przetwarzanie zadań w tle
Główne cechy Swoole
- Wysoka wydajność: Oparte na wywołaniach systemowych epoll/kqueue, realizuje asynchroniczny i nieblokujący I/O oraz łączy wielowątkowość, wieloprocesowość i współprogramowanie, zapewniając wysoką przepustowość oraz niskie opóźnienia.
- Asynchroniczność i współprogramowanie (coroutines): Zastosowanie współprogramowania umożliwia pisanie asynchronicznego kodu w sposób synchroniczny, znacznie zwiększając efektywność pracy.
- Bogactwo komponentów: Wbudowane serwery i klienci HTTP, WebSocket, TCP, UDP, pule połączeń, timery, zarządzanie procesami i wiele innych.
- Łatwa integracja: Może współpracować z istniejącymi frameworkami PHP (np. Laravel, Symfony, ThinkPHP) lub posłużyć do zbudowania natywnych aplikacji opartych wyłącznie o Swoole.
Obsługa modułu Swoole w ServBay
ServBay domyślnie zawiera rozszerzenie Swoole dla różnych wersji PHP — nie musisz go osobno pobierać ani kompilować. ServBay zarządza zgodnością rozszerzenia Swoole z różnymi wersjami PHP.
Aktualnie Swoole można aktywować dla następujących wersji PHP w ServBay:
- PHP 5.6
- Seria PHP 7.x
- Seria PHP 8.x (w tym PHP 8.5)
ServBay automatycznie dostosowuje odpowiednią wersję rozszerzenia Swoole do wybranego PHP.
Wymagania wstępne
Przed aktywacją modułu Swoole upewnij się, że:
- Masz zainstalowany i uruchomiony ServBay.
- Zainstalowałeś oraz wybrałeś w ServBay wersję PHP, dla której chcesz korzystać z Swoole.
Instrukcja aktywacji modułu Swoole
ServBay oferuje dwie metody włączenia modułu Swoole: przez interfejs graficzny (GUI) oraz ręczną edycję plików konfiguracyjnych. Zalecamy korzystanie z GUI, ponieważ ta metoda jest najbardziej przejrzysta i wygodna.
Aktywacja przez GUI ServBay (zalecana)
To najłatwiejszy i najszybszy sposób na włączenie modułu Swoole:
- Otwórz graficzny interfejs użytkownika ServBay.
- W lewym panelu nawigacyjnym wybierz Języki (Languages).
- Kliknij PHP.
- Z listy wersji PHP po prawej stronie znajdź wersję, w której chcesz aktywować Swoole (np.
PHP 8.3
) i upewnij się, że jest wybrana (zielone kółko). - Kliknij przycisk Rozszerzenia (Extensions) po prawej stronie wybranej wersji PHP.
- W wyświetlonej liście rozszerzeń znajdź swoole.
- Przełącz włącznik po lewej stronie pozycji swoole na “on” (zmieni kolor na zielony).
- Kliknij przycisk Zapisz (Save) lub Zastosuj (Apply) na dole okna.
- ServBay poprosi o ponowne uruchomienie powiązanych usług PHP, aby załadować nowe rozszerzenie. Kliknij Restartuj (Restart).
Po ponownym uruchomieniu usług Swoole zostanie aktywowane.
Ręczna edycja pliku konfiguracyjnego (dla zaawansowanych)
Jeśli potrzebujesz bardziej zaawansowanej konfiguracji lub preferujesz ręczne zarządzanie plikami, możesz włączyć Swoole edytując plik ini
dla PHP.
Przejdź do folderu
conf.d
odpowiedniej wersji PHP. Katalogconf.d
przechowuje konfiguracje dodatkowych rozszerzeń PHP, a ServBay automatycznie ładuje.ini
pliki z tego folderu. Przykładowa ścieżka dla PHP 8.3:/Applications/ServBay/etc/php/8.3/conf.d/
1Jeśli ServBay był instalowany w niestandardowej lokalizacji, dostosuj ścieżkę do własnego środowiska.
W tym katalogu znajdź i otwórz plik
swoole.ini
.Domyślnie, linia aktywująca Swoole może być zakomentowana (poprzedzona znakiem
;
). Odszukaj taki zapis:ini[Swoole] ; Uncomment the following line to enable Swoole ;extension = swoole.so
1
2
3Usuń znak
;
, aby odkomentować linięextension = swoole.so
:ini[Swoole] ; Uncomment the following line to enable Swoole extension = swoole.so
1
2
3Zapisz zmiany w pliku
swoole.ini
.W głównym interfejsie ServBay lub panelu zarządzania usługami, odszukaj powiązaną usługę PHP i wybierz ponowne uruchomienie.
Po restarcie, moduł Swoole zostanie aktywowany zgodnie z ustawieniem w pliku konfiguracyjnym.
Jak sprawdzić, czy moduł Swoole został poprawnie włączony
Najpopularniejszym sposobem weryfikacji jest użycie funkcji phpinfo()
, aby sprawdzić załadowane moduły PHP.
- W katalogu głównym wybranej strony w ServBay (np.
/Applications/ServBay/www/servbay.demo/public/
) utwórz plikphpinfo.php
. - Wstaw do niego następującą treść:php
<?php phpinfo(); ?>
1
2
3 - Upewnij się, że w ServBay skonfigurowana jest strona
servbay.demo
wskazująca na katalog z tym plikiem. - W przeglądarce otwórz adres odpowiadający temu plikowi, np.
https://servbay.demo/phpinfo.php
. - Na stronie
phpinfo
, przewiń w dół lub użyj wyszukiwania (Ctrl+F lub Cmd+F), wpisz „swoole”.
Jeśli wśród informacji pojawią się dane o Swoole (wersja, opcje konfiguracji itp.), to znaczy, że moduł jest prawidłowo załadowany i aktywny.
Ilustracja: Wyszukiwanie informacji o Swoole na stronie phpinfo
Przykład użycia Swoole
Po włączeniu rozszerzenia Swoole możesz rozpocząć pisanie aplikacji opartych o Swoole. Oto prosty przykład pokazujący utworzenie podstawowego serwera HTTP w Swoole.
Przykładowy kod: tworzenie prostego serwera HTTP w Swoole
Utwórz katalog projektu
W katalogu roboczym (np./Applications/ServBay/www/
) utwórz nowy folder dla projektu, np.my-swoole-app
, a w nim podfolderpublic
na pliki wejściowe.bashcd /Applications/ServBay/www/ mkdir my-swoole-app cd my-swoole-app mkdir public
1
2
3
4Utwórz plik wejściowy serwera:
public/index.php
php<?php require __DIR__ . '/../vendor/autoload.php'; // Jeśli używasz Composer'a do instalacji innych zależności use Swoole\Http\Server; use Swoole\Http\Request; use Swoole\Http\Response; // Tworzenie instancji serwera HTTP nasłuchującego na wszystkich IP (0.0.0.0) na porcie 9501 $server = new Server("0.0.0.0", 9501); // Konfiguracja serwera (opcjonalnie) // $server->set([ // 'worker_num' => 4, // Liczba procesów roboczych // 'daemonize' => false, // Czy uruchomić jako demon // ]); // Obsługa żądania $server->on("request", function (Request $request, Response $response) { // Ustawianie nagłówka odpowiedzi $response->header("Content-Type", "text/plain"); // Treść odpowiedzi $response->end("Hello ServBay with Swoole!"); }); // Obsługa zdarzenia uruchomienia serwera (opcjonalnie) $server->on("start", function (Server $server) { echo "Swoole http server is started at http://0.0.0.0:9501\n"; }); // Uruchomienie serwera $server->start(); echo "Swoole server stopped.\n"; // Ta linia wykona się dopiero po zatrzymaniu serwera
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35Uwaga: Linia
require __DIR__ . '/../vendor/autoload.php';
potrzebna jest tylko wtedy, gdy korzystasz z dodatkowych bibliotek Swoole instalowanych przez Composer (np.swoole/ide-helper
lub frameworki Swoole). Dla czystego kodu Swoole nie jest ona konieczna i można ją usunąć.Uruchom serwer w terminalu
W ServBay skorzystaj z opcji terminala lub otwórz zwykły terminal systemowy, przejdź do katalogu projektu (/Applications/ServBay/www/my-swoole-app/
). Upewnij się, że terminal korzysta z wersji PHP zarządzanej przez ServBay (sprawdź ścieżkę przezwhich php
lub po prostu użyj terminala ServBay).Uruchom serwer Swoole:
shphp public/index.php
1Jeśli wszystko działa poprawnie, zobaczysz w terminalu komunikat w stylu „Swoole http server is started at http://0.0.0.0:9501”.
Ilustracja: Uruchamianie serwera Swoole w terminalu
Testowanie dostępu
Po uruchomieniu serwera otwórz przeglądarkę i wpiszhttp://localhost:9501
. Na stronie powinien pojawić się komunikat "Hello ServBay with Swoole!".Serwer Swoole zatrzymasz w terminalu, naciskając
Ctrl + C
.
Ważne uwagi
- Tryb uruchomienia: Przykład powyżej pokazuje uruchomienie serwera Swoole z linii poleceń, co jest typowe dla usług działających stale w pamięci operacyjnej. Klasyczne aplikacje webowe (np. Laravel/Symfony/WordPress) działają zwykle w trybie PHP-FPM za pośrednictwem Caddy lub Nginx. Chcąc korzystać z tych frameworków z Swoole (np. Hyperf, Swoole-Laravel), należy korzystać z dostarczonych przez nie skryptów startowych – są to również niezależne procesy.
- Zajętość portu: Serwer Swoole nasłuchuje na wybranym porcie (domyślnie 9501 w przykładzie). Upewnij się, że port ten nie jest zajęty przez inny proces.
- Logi błędów: Komunikaty błędów oraz wszelkie wyjście z serwera Swoole pojawi się w terminalu, ewentualnie w wyznaczonym pliku logów, w zależności od konfiguracji.
Najczęściej zadawane pytania (FAQ)
Q: Włączyłem Swoole w GUI ServBay, ale nie widzę informacji o Swoole na stronie phpinfo()
. Co zrobić?
A: Sprawdź następujące kwestie:
- Czy na pewno oglądasz
phpinfo()
dla właściwej wersji PHP? W ServBay możesz uruchamiać kilka wersji PHP naraz – upewnij się, że Twoja strona/terminal korzysta z tej, gdzie aktywowano Swoole. - Zweryfikuj, czy zapisałeś zmiany i zrestartowałeś usługę PHP w GUI ServBay.
- Jeśli używałeś edycji pliku
swoole.ini
, sprawdź ścieżkę, nazwę pliku i upewnij się, że liniaextension = swoole.so
jest odkomentowana.
Q: Dlaczego po uruchomieniu przykładu Swoole pojawia się komunikat Class 'Swoole\Http\Server' not found
?
A: Przyczyną jest brak załadowanego modułu Swoole dla aktualnie używanego środowiska PHP. Powtórz wyżej wymienione kroki weryfikacji aktywacji Swoole i upewnij się, że podczas uruchamiania polecenia php public/index.php
korzystasz z wersji PHP zarządzanej przez ServBay z aktywnym Swoole. W terminalu możesz szybko sprawdzić załadowane moduły komendą php -m | grep swoole
.
Podsumowanie
Dzięki ServBay uruchamianie rozszerzenia Swoole dla PHP jest wyjątkowo proste. Niezależnie od tego, czy wolisz graficzny interfejs, czy ręczną edycję plików konfiguracyjnych, z łatwością załadujesz Swoole dla wybranej wersji PHP i rozpoczniesz przygodę z wysokowydajnymi, asynchronicznymi aplikacjami webowymi w PHP. Z wykorzystaniem możliwości Swoole możesz zbudować aplikacje szybkie i odporne na duże obciążenia, pokazując prawdziwy potencjał PHP w nowoczesnym web developmencie. ServBay zapewnia wygodne zarządzanie środowiskiem, dzięki czemu możesz skupić się na programowaniu, bez zbędnych komplikacji przy konfiguracji środowiska pracy.