Zarządzanie wersjami PHP w ServBay: przewodnik po ustawieniach CLI i środowiska stron
ServBay to zaawansowane narzędzie lokalnego środowiska programistycznego dla macOS i Windows, wspierające wiele języków programowania oraz baz danych. Ten artykuł wyjaśnia, jak elastycznie zarządzać różnymi wersjami PHP w projektach ServBay zarówno podczas uruchamiania skryptów w linii poleceń, jak i obsługi stron internetowych. Opanowanie mechanizmów zarządzania wersjami PHP w ServBay pozwala znacznie zwiększyć efektywność pracy, zapewniając stabilność oraz izolację środowisk projektowych.
I. Środowisko linii poleceń: zarządzanie wersją PHP dla projektu poprzez .servbay.config
Tworząc plik konfiguracyjny .servbay.config
w głównym katalogu projektu, możesz przypisać dedykowaną wersję PHP dla każdego projektu w CLI. ServBay automatycznie ładuje odpowiednią wersję PHP bazując na lokalizacji terminala, zapewniając izolację środowisk i brak konfliktów w ustawieniach globalnych.
1. Rola i zasada działania .servbay.config
- Kontrola wersji na poziomie projektu: ServBay umożliwia jednoczesne instalowanie i uruchamianie wielu wersji PHP – od PHP 5.6 po najnowsze wydania stabilne i rozwojowe. Dzięki
.servbay.config
określasz precyzyjnie żądaną wersję PHP dla konkretnego projektu. - Bezproblemowe przełączanie: Po wejściu przez
cd
do katalogu z.servbay.config
, ServBay automatycznie wykrywa plik i chwilowo modyfikuje zmienne środowiskowe sesji terminala (główniePATH
), dzięki czemu polecenia takie jakphp
czycomposer
wskazują na wyznaczoną wersję PHP. Po opuszczeniu katalogu środowisko wraca do globalnych ustawień ServBay — bez wpływu na system.
2. Sposób konfiguracji
Utwórz w głównym katalogu projektu plik o nazwie .servbay.config
, a następnie wpisz treść określającą wybraną wersję PHP:
bash
# Wybierz wersję PHP dla bieżącego projektu (przykład: PHP 8.3)
PHP_VERSION=8.3
# Jeśli projekt wymaga też konkretnej wersji Node.js, możesz ją ustawić (np.: Node.js 20)
# NODE_VERSION=20
1
2
3
4
5
2
3
4
5
- Wartość
PHP_VERSION
powinna odpowiadać identyfikatorowi wersji PHP zainstalowanej w ServBay (np.7.4
,8.1
,8.3
,8.5
itd.). Upewnij się, że wskazana wersja jest dostępna i aktywna w ServBay. NODE_VERSION
ustalasz analogicznie, aby wybrać wersję Node.js używaną przez projekt.
Weryfikacja działania:
Otwórz terminal w katalogu z .servbay.config
i wykonaj polecenia:
bash
$ pwd # Sprawdź czy jesteś w głównym katalogu projektu
$ php -v # Sprawdź, czy wyświetla się skonfigurowana wersja PHP (np.: PHP 8.3.x)
$ composer install # Instalacja zależności odbędzie się przy użyciu wybranej wersji PHP
1
2
3
2
3
Jeśli po zmianie .servbay.config
wersja PHP nie się przełączyła, zamknij i otwórz ponownie terminal lub wykonaj cd .
, aby wymusić przeładowanie konfiguracji przez ServBay.
3. Wskazówki i zaawansowane porady
- Kompatybilność wersji: Jeśli napotkasz błędy typu "Class not found" lub "Call to undefined function" podczas uruchamiania poleceń projektu, najpierw sprawdź wymagania wersji PHP w pliku zależności (np.
composer.json
) oraz kompatybilność pomiędzy wybraną wersją PHP a projektem i jego bibliotekami. Starsze projekty mogą wymagać wycofanych funkcji/rozszerzeń (np.mcrypt
usunięto w PHP 7.2). - Wartość domyślna globalna: Jeśli katalog projektu lub jego nadrzędny nie zawiera pliku
.servbay.config
, ServBay użyje wersji PHP wybranej w ustawieniach globalnych interfejsu graficznego. - Integracja wieloserwisowa:
.servbay.config
pozwala również na wybór wersji Node.js (NODE_VERSION
). To idealne rozwiązanie w projektach gdzie PHP jest backendem, a Node.js napędza frontendowe narzędzia buildujące (np. Webpack, Vite).
4. Przykład działania
Poniżej przykład automatycznego przełączania wersji PHP w CLI za pomocą .servbay.config
w różnych katalogach projektowych:
Opis obrazu: Przechodząc do katalogów zawierających różne pliki
.servbay.config
, polecenie php -v
w ServBay automatycznie pokazuje wersję PHP przypisaną w konfiguracji.
II. Środowisko stron: zarządzanie wersją PHP przez graficzny interfejs ServBay
Graficzny interfejs ServBay pozwala intuicyjnie ustawić osobną wersję PHP dla każdej skonfigurowanej strony. Wersja PHP dla strony i środowiska CLI są od siebie niezależne – możesz dopasować je do potrzeb projektu.
1. Proces konfiguracji
- Uruchom ServBay GUI: Włącz program ServBay.
- Przejdź do zarządzania stronami: Kliknij zakładkę Websites w lewym panelu głównego interfejsu.
- Dodaj lub edytuj stronę:
- Kliknij + w lewym dolnym rogu, aby dodać nową konfigurację strony.
- Możesz edytować już istniejącą stronę.
- Skonfiguruj właściwości strony:
- Root Directory (Katalog główny): Wskaż folder z plikami strony, najlepiej w katalogu serwisywanym przez ServBay, np.
/Applications/ServBay/www/
– jako podkatalog, np./Applications/ServBay/www/your-website-name/public
(dla projektów Laravel lub Symfony). - Domain (Domena): Ustal lokalną domenę do testów projektu, np.
your-website-name.servbay.demo
. ServBay automatycznie skonfiguruje lokalne DNS i certyfikat HTTPS (ServBay User CA lub Public CA), co ułatwi development i testowanie. - PHP Version (Wersja PHP): Z rozwijanej listy wybierz wersję PHP, którą ma używać dana strona. Dostępne będą wszystkie zainstalowane i aktywne wersje PHP (np. 7.4, 8.1, 8.3, 8.5 itd.).
- Root Directory (Katalog główny): Wskaż folder z plikami strony, najlepiej w katalogu serwisywanym przez ServBay, np.
- Zachowaj konfigurację: Po skonfigurowaniu kliknij zapisz – ServBay automatycznie wdroży zmiany, czasem wymagając przeładowania lub restartu serwera WWW i procesów PHP-FPM.
2. Aspekty techniczne i zalety
- Izolacja serwisów: Dla każdej strony ServBay uruchamia osobny pool procesów PHP-FPM, co gwarantuje całkowitą izolację środowiska. Błędy lub wycieki pamięci w jednym projekcie nie mają wpływu na inne strony.
- Optymalizacja wydajności: Paczki ServBay – w tym PHP – są zoptymalizowane dla architektur ARM64 (Apple Silicon) oraz X86_64, zapewniając wysoką wydajność niezależnie od sprzętu.
- Diagnostyka błędów:
- Sprawdź logi błędów PHP: Problemy PHP dla stron rejestrowane są w
/Applications/ServBay/var/log/php/php_error.log
. - Monitoruj stan procesów PHP-FPM: Skorzystaj z CLI ServBay, np.
servbayctl status php 8.3
, by sprawdzić status instancji PHP.
- Sprawdź logi błędów PHP: Problemy PHP dla stron rejestrowane są w
3. Integracja z serwerami WWW i bazami danych
ServBay daje dużą swobodę wyboru serwera WWW i bazy danych:
- Wspierane serwery WWW: Od wersji 1.7.0 ServBay możesz łatwo przełączać serwer używany przez stronę (Apache, Nginx, Caddy) – serwery bezproblemowo współpracują z zarządzanymi przez ServBay procesami PHP-FPM.
- Wsparcie dla baz danych: ServBay obsługuje instalację i zarządzanie wieloma wersjami baz: MySQL, MariaDB, PostgreSQL, MongoDB, Redis. Możesz zestawić wybrany typ i wersję bazy w konfiguracji strony lub bezpośrednio w kodzie projektu, np. dla projektów Laravel preferujących MariaDB 11.x.
III. Współpraca środowisk i dobre praktyki
Rozumienie i poprawna konfiguracja wersji PHP w CLI oraz środowisku stron pozwala na optymalny workflow w różnych sytuacjach programistycznych:
Sytuacja | Konfiguracja CLI (.servbay.config ) | Konfiguracja stron (GUI ServBay) | Uwagi |
---|---|---|---|
Obsługa legacy | PHP_VERSION=5.6 w katalogu projektu | Wybierz PHP 5.6 dla danej strony | Upewnij się, że wybrane rozszerzenia są dostępne w zainstalowanej wersji. |
Nowy projekt (np. Laravel 11) | PHP_VERSION=8.3 (lub wyższa), możliwe też NODE_VERSION=20 | Dodaj stronę, katalog public , wersja PHP 8.3+, ustal domenę, aktywuj HTTPS | Utrzymuj zgodność wersji narzędzi CLI i środowiska WWW. |
Testowanie PHP przyszłości | PHP_VERSION=8.5 w katalogu testowym | Dodaj stronę testową z PHP 8.5 | Ułatwia sprawdzenie kompatybilności z nowym PHP. |
Użycie Composer | Dopilnuj, by .servbay.config wskazywał dobrą wersję PHP | N/A (Composer działa w CLI) | Composer korzysta z aktywnej wersji PHP w bieżącym środowisku terminala. |
Uwagi
- Różnice CLI vs WWW: Nawet jeśli wersje PHP mają ten sam numer, domyślna konfiguracja (php.ini) i ładowane rozszerzenia mogą się różnić pomiędzy CLI a WWW (PHP-FPM). Np. rozszerzenie
opcache
jest domyślnie aktywne w PHP-FPM (dla wydajności), zaś w CLI często wyłączone. W przypadku niezgodności sprawdź konkretne plikiphp.ini
i załadowane rozszerzenia (w ServBay każda wersja PHP ma osobny plik). - Aktualizuj Runtime ServBay: Dbaj o aktualność aplikacji ServBay oraz jej środowiska Runtime. Zespół ServBay regularnie udoskonala pakiety, w tym najnowsze wersje PHP i poprawki bezpieczeństwa. Aktualizacja aplikacji z reguły pociąga za sobą aktualizację Runtime, dostarczając nowe funkcje i poprawki.
Najczęstsze pytania (FAQ)
Q: Co zrobić w przypadku konfliktu między wersją PHP w CLI a stroną WWW?
A: Wersja PHP w środowisku CLI (kontrolowana przez .servbay.config
) i dla stron WWW (kontrolowana przez GUI ServBay) są niezależne. .servbay.config
dotyczy tylko sesji terminala, czyli wersji dla poleceń takich jak php
, composer
; konfiguracja strony dotyczy wersji PHP uruchamianej przez serwer Apache/Nginx/Caddy (PHP-FPM) dla obsługi ruchu na stronie. Konfliktów nie ma – możesz przypisać różne wersje PHP dla tego samego projektu w CLI i WWW, jednak dla spójności środowiska zaleca się ustalenie identycznej wersji dla obu obszarów.
Podsumowanie
ServBay, za sprawą pliku .servbay.config
oraz intuicyjnego GUI, daje programistom szerokie możliwości zarządzania wersjami PHP. Niezależnie, czy utrzymujesz stare systemy wymagające starszych wersji, czy tworzysz nową aplikację na najnowszym PHP, ServBay pozwala łatwo przełączać wersje i dbać o izolację środowisk. Mądre wykorzystanie tych możliwośći sprawia, że lokalny development jest bardziej zbliżony do produkcji, a efektywność pracy i stabilność projektów są dużo większe.