Zarządzanie wersjami PHP w ServBay: Przewodnik po konfiguracji CLI i środowiska WWW
ServBay to zaawansowane narzędzie do lokalnego rozwoju aplikacji webowych, zaprojektowane specjalnie dla systemu macOS, wspierające wiele języków programowania i baz danych. W tym artykule szczegółowo wyjaśniamy, jak elastycznie zarządzać wersjami PHP dla różnych projektów w ServBay – zarówno podczas korzystania z linii poleceń, jak i konfiguracji środowisk WWW. Poznając mechanizmy kontroli wersji PHP w ServBay, znacząco zwiększysz swoją wydajność pracy oraz zapewnisz izolację i stabilność środowisk projektowych.
1. Środowisko linii poleceń: Zarządzanie wersjami PHP na poziomie projektu za pomocą .servbay.config
Tworząc plik konfiguracyjny .servbay.config
w głównym folderze projektu, deweloper może przypisać niezależną wersję PHP do każdego projektu uruchamianego w CLI. ServBay automatycznie przeładuje odpowiednie środowisko PHP w zależności od lokalizacji aktualnego terminala, co pozwala na wygodną izolację wersji i unikanie konfliktów globalnej konfiguracji.
1.1. Funkcja i zasada działania .servbay.config
- Kontrola wersji na poziomie projektu: ServBay pozwala na jednoczesną instalację i uruchamianie wielu wersji PHP – od 5.6 do najnowszych stabilnych i deweloperskich wydań. Dzięki plikowi
.servbay.config
przypiszesz precyzyjnie wymaganą wersję PHP do każdego projektu. - Bezbolesne przełączanie wersji: Gdy w terminalu, komendą
cd
, wejdziesz do katalogu projektu zawierającego plik.servbay.config
, ServBay automatycznie wykryje ten plik i tymczasowo zmieni zmienne środowiskowe (przede wszystkimPATH
) dla bieżącej sesji terminala. Dzięki temu poleceniaphp
,composer
itp. wskazują na odpowiedniego executabla z wybranej wersji PHP. Po wyjściu z katalogu projektowego środowisko wraca do globalnych ustawień ServBay, nie wpływając na systemową konfigurację.
1.2. Jak skonfigurować
W folderze głównym swojego projektu stwórz plik .servbay.config
z następującą zawartością, aby przypisać konkretną wersję PHP:
bash
# Określenie wersji PHP dla bieżącego projektu (przykład: PHP 8.3)
PHP_VERSION=8.3
# Jeśli wymagany jest też określony Node.js, możesz dodać poniższą linię (przykład: Node.js 20)
# NODE_VERSION=20
1
2
3
4
5
2
3
4
5
- Wartość
PHP_VERSION
to identyfikator zainstalowanej w ServBay wersji PHP – najczęściej numer główny lub główny.zapunktowany (np.7.4
,8.1
,8.3
,8.5
). Upewnij się, że wybrana wersja została zainstalowana i aktywowana w ServBay. NODE_VERSION
działa analogicznie, umożliwiając określenie wersji Node.js dla projektu.
Weryfikacja działania:
Będąc w katalogu projektu zawierającym .servbay.config
, uruchom terminal i sprawdź wersję aktywnego PHP:
bash
$ pwd # Upewnij się, że jesteś w folderze głównym projektu
$ php -v # Sprawdź, czy widoczna wersja PHP to ta, którą wskazałeś (np. PHP 8.3.x)
$ composer install # Instalacja zależności przy użyciu aktualnie aktywnej wersji PHP
1
2
3
2
3
Jeśli po zmianie pliku .servbay.config
wersja PHP nadal się nie przełączyła, zamknij i otwórz nowe okno terminala lub użyj komendy cd .
, aby wymusić ponowne wczytanie konfiguracji przez ServBay.
1.3. Wskazówki i zaawansowane użycie
- Zgodność wersji: Jeśli napotkasz błędy typu "Class not found" czy "Call to undefined function", najpierw sprawdź wymagania wersji PHP w pliku
composer.json
projektu i upewnij się, że wybrana przez Ciebie wersja PHP jest kompatybilna. Starsze projekty mogą wymagać funkcji lub rozszerzeń usuniętych w nowszych wersjach PHP (np. w PHP 7.2 usunięto rozszerzeniemcrypt
). - Wartość domyślna globalna: Jeśli w bieżącym ani nadrzędnych katalogach nie ma pliku
.servbay.config
, ServBay użyje globalnej domyślnej wersji PHP ustawionej w GUI. - Kooperacja wielu serwisów: Plik
.servbay.config
może zarządzać nie tylko wersją PHP, ale też Node.js (przezNODE_VERSION
). Przydaje się to w projektach wykorzystujących PHP w backendzie oraz Node.js jako narzędzie frontendowe (np. Webpack, Vite).
1.4. Przykład w użyciu
Poniżej demonstracja automatycznego przełączania wersji PHP w zależności od katalogu projektowego za pomocą pliku .servbay.config
:
Opis obrazka: W ServBay, przechodząc do katalogów z różnymi plikami
.servbay.config
, komenda php -v
pokazuje automatycznie ustawioną wersję PHP zgodnie z plikiem konfiguracyjnym projektu.
2. Środowisko WWW: Zarządzanie wersjami PHP przez graficzny interfejs ServBay
Graficzny interfejs ServBay pozwala w prosty sposób skonfigurować dedykowaną wersję PHP dla każdej strony WWW z osobna. Wersje PHP używane przez serwer WWW są niezależne od tych zdefiniowanych w środowisku CLI. Możesz więc swobodnie dobrać wersję do potrzeb projektu.
2.1. Jak skonfigurować
- Uruchom graficzny interfejs ServBay: Otwórz aplikację ServBay.
- Przejdź do zarządzania stronami WWW: Kliknij zakładkę Strony (Websites) w menu po lewej.
- Dodaj lub edytuj witrynę:
- Kliknij przycisk + w lewym dolnym rogu, aby dodać nową stronę.
- Możesz też wybrać istniejącą stronę i edytować jej ustawienia.
- Skonfiguruj ustawienia witryny:
- Folder główny (Root Directory): wskaż katalog zawierający pliki Twojej strony. Rekomendowana domyślna ścieżka to
/Applications/ServBay/www/
i podkatalog np.:/Applications/ServBay/www/nazwa-strony/public
(w przypadku projektów Laravel/Symfony). - Domena (Domain): ustaw lokalną domenę do odwiedzin na tej stronie, np.
nazwa-strony.servbay.demo
. ServBay automatycznie dba o lokalne DNS i certyfikaty HTTPS (poprzez ServBay User CA lub ServBay Public CA), co znacznie ułatwia rozwój oraz testy. - Wersja PHP: wybierz z listy rozwijalnej wersję PHP do obsługi tej witryny. ServBay pokaże wszystkie zainstalowane i aktywne wersje PHP (np. 7.4, 8.1, 8.3, 8.5).
- Folder główny (Root Directory): wskaż katalog zawierający pliki Twojej strony. Rekomendowana domyślna ścieżka to
- Zapisz ustawienia: Po skończeniu kliknij „zapisz”. ServBay automatycznie zastosuje zmiany – jeśli to konieczne, przeładuje lub zrestartuje odpowiednie serwery WWW i procesy PHP-FPM.
2.2. Szczegóły techniczne i zalety
- Izolacja usług: Dla każdej strony ServBay uruchamia dedykowaną pulę procesów PHP-FPM, gwarantując pełne odseparowanie środowisk. Błąd lub wyciek pamięci na jednej stronie nie wpłynie na inne projekty.
- Optymalizacja wydajności: Pakiety ServBay (w tym wszystkie wersje PHP) są zoptymalizowane zarówno pod architekturę ARM64 (Apple Silicon), jak i X86_64, zapewniając wysoką wydajność niezależnie od posiadanego sprzętu.
- Debugowanie:
- Logi błędów PHP znajdziesz w pliku
/Applications/ServBay/var/log/php/php_error.log
. - Status procesów PHP-FPM dla wybranej wersji sprawdzisz przez narzędzie CLI
servbayctl
, np.servbayctl status php 8.3
.
- Logi błędów PHP znajdziesz w pliku
2.3. Integracja z serwerami WWW i bazami danych
ServBay zapewnia dużą elastyczność – wybierz serwer WWW i bazę danych odpowiednie do projektu:
- Serwery WWW: Od wersji 1.7.0 możesz łatwo zmieniać typ serwera na Apache, Nginx lub Caddy. Każdy z nich jest w pełni zintegrowany z PHP-FPM zarządzanym przez ServBay.
- Bazy danych: Obsługa wielu wariantów i wersji MySQL, MariaDB, PostgreSQL, MongoDB, Redis. Możesz połączyć się z dowolną instancją bazy przez ustawienia strony lub w kodzie aplikacji. Przydaje to się np. w projektach Laravel wymagających konkretnych wersji MariaDB (np. 11.x).
3. Praca wielośrodowiskowa i najlepsze praktyki
Znajomość niezależności i sposobu konfiguracji wersji PHP w CLI oraz środowisku WWW pozwala świadomie wybrać najlepsze rozwiązanie w zależności od sytuacji:
Sytuacja | Konfiguracja CLI (.servbay.config ) | Konfiguracja WWW (GUI ServBay) | Uwagi |
---|---|---|---|
Utrzymywanie starych systemów | W głównym katalogu projektu: PHP_VERSION=5.6 | W konfiguracji strony wybierz PHP 5.6 | Sprawdź, czy wymagana wersja PHP i jej rozszerzenia są zainstalowane w ServBay. |
Nowy projekt (np. Laravel 11) | PHP_VERSION=8.3 (lub wyższy), opcjonalnie NODE_VERSION=20 | Dodaj nową stronę, ustaw katalog na public , wybierz PHP 8.3+, domenę i HTTPS | Dbaj o spójność wersji PHP między CLI (Composer, Artisan, Node) i usługą WWW. |
Testowanie przyszłych wersji PHP | W katalogu testowym ustaw PHP_VERSION=8.5 | Dodaj stronę testową, wybierz PHP 8.5 | Służy do sprawdzania zgodności aplikacji z nadchodzącymi wersjami PHP. |
Uruchamianie Composer | Upewnij się, że w bieżącym/nadrzędnym katalogu .servbay.config wskazuje poprawną wersję PHP | N/D (Composer używany głównie w CLI) | Composer użyje wersji PHP aktywnej w terminalu. |
Uwaga
- Różnice CLI vs WWW: Nawet jeśli CLI i WWW korzystają z tej samej wersji PHP, domyślne konfiguracje i załadowane rozszerzenia mogą się różnić! Przykładowo,
opcache
jest domyślnie aktywowany w PHP-FPM (dla zwiększenia wydajności), ale nie zawsze w CLI. W razie rozbieżności działania – sprawdź osobno plikiphp.ini
(każda wersja PHP w ServBay ma swój własny) oraz aktywne rozszerzenia. - Aktualizacja ServBay Runtime: Zadbaj, by Twoja aplikacja ServBay i tzw. Runtime były zawsze aktualne – deweloperzy ServBay regularnie wprowadzają nowe wersje PHP i poprawki bezpieczeństwa. Aktualizacja ServBay najczęściej automatycznie aktualizuje też środowisko uruchomieniowe, zapewniając najnowsze funkcjonalności i optymalizacje.
FAQ – Najczęściej zadawane pytania
P: Co zrobić w przypadku konfliktu wersji PHP pomiędzy CLI a środowiskiem WWW?
O: Środowisko CLI (zarządzane przez .servbay.config
) i środowisko WWW (zarządzane przez GUI ServBay) są od siebie niezależne. Plik .servbay.config
dotyczy tylko tego, jaka wersja PHP będzie używana przez komendy w terminalu; natomiast konfiguracja strony określa, z jakiej wersji PHP będzie korzystać backend WWW (Apache/Nginx/Caddy przez PHP-FPM). Konflikt nie występuje – można korzystać z różnych wersji PHP w CLI i WWW dla tego samego projektu (np. Composer/Artisan w innej wersji niż frontend). Zalecamy jednak dla spójności środowiska deweloperskiego i produkcyjnego wybierać tę samą wersję w obu miejscach.
Podsumowanie
ServBay dostarcza potężne i elastyczne zarządzanie wersjami PHP dzięki plikowi .servbay.config
oraz intuicyjnemu interfejsowi graficznemu. Bez względu na to, czy utrzymujesz starsze projekty PHP, czy budujesz nowoczesne aplikacje korzystające z najnowszych wersji, ServBay pozwala łatwo kontrolować środowisko oraz przybliża je do warunków produkcyjnych. Skuteczne używanie tych funkcji poprawia wydajność pracy i stabilność projektów.