Migracja strony z NGINX do serwera Caddy w ServBay
ServBay to zaawansowane lokalne środowisko programistyczne dla stron internetowych, które integruje wiele popularnych serwerów WWW, w tym Caddy, NGINX oraz Apache. ServBay jest fabrycznie skonfigurowany do obsługi najczęściej używanych reguł przepisywania URL dla serwerów, zwłaszcza Caddy i NGINX, znacznie upraszczając pracę dewelopera.
Ten artykuł to szczegółowy przewodnik po bezproblemowej migracji istniejącej strony NGINX do wbudowanego serwera Caddy w ServBay. Cały proces omówimy na przykładzie popularnych aplikacji PHP, takich jak Laravel i system zarządzania treścią WordPress.
Kompleksowa obsługa serwerów WWW przez ServBay
ServBay zapewnia pełną obsługę Caddy, NGINX oraz Apache. Dobór domyślnego serwera WWW można dostosować do wymogów projektu. Szczegóły znajdziesz w dokumentacji Jak zmienić domyślny serwer WWW.
Przegląd
Migracja strony internetowej z jednego serwera do drugiego wymaga przeniesienia plików konfiguracyjnych oraz plików strony. W ServBay proces przeniesienia do Caddy jest bardzo uproszczony. Dla większości frameworków i systemów CMS opartych na PHP (takich jak Laravel, WordPress, Symfony, CodeIgniter, Drupal, Joomla i inne) ServBay oferuje wsparcie gotowe do użycia – nie trzeba ręcznie tworzyć ani modyfikować plików konfiguracyjnych Caddy. ServBay automatycznie generuje plik Caddyfile na podstawie ustawień witryny w GUI.
Przygotowanie do migracji
Przed rozpoczęciem migracji należy wykonać następujące czynności:
- Utwórz kopię zapasową plików strony: Zrób pełny backup wszystkich plików i folderów z katalogu głównego strony.
- Utwórz kopię zapasową bazy danych: Wykonaj backup bazy danych, z której korzysta strona (np. MySQL, PostgreSQL, MongoDB itp.). ServBay oferuje wbudowane narzędzia do zarządzania bazą lub pozwala na backup ręczny.
- Zainstaluj ServBay: Upewnij się, że ServBay jest poprawnie zainstalowany i uruchomiony na systemie macOS.
- Sprawdź lokalizację plików: Umieść pliki strony w domyślnym katalogu głównym ServBay
/Applications/ServBay/www
lub w jego podkatalogach. Przykładowo, jeśli projekt nosi nazwęmyproject
, włóż go do/Applications/ServBay/www/myproject
.
Jak działa Caddy w ServBay
Ważne jest, by zrozumieć, jak ServBay zarządza konfiguracją Caddy. Zamiast ręcznie edytować plik Caddyfile, ServBay umożliwia dodanie i konfigurację strony przez graficzny interfejs (GUI). Po dodaniu strony i wyborze Caddy jako serwera WWW, ServBay generuje i zarządza odpowiednim fragmentem Caddyfile na podstawie podanego domeny, katalogu strony, wersji PHP itp. Te fragmenty są dołączane do głównego pliku Caddyfile przez ServBay, zapewniając prawidłową pracę witryny.
Oznacza to, że wystarczy dodać stronę w GUI ServBay, by mieć gotową konfigurację Caddy – bez potrzeby ręcznej edycji .caddyfile
lub innych plików tekstowych.
Kroki migracji
Migracja strony z NGINX do serwera Caddy w ServBay przebiega bardzo prosto:
- Uruchom ServBay: Upewnij się, że aplikacja ServBay działa.
- Zlokalizuj pliki strony: Skopiuj lub przenieś pliki swojej strony NGINX (cały kod aplikacji, obrazy, CSS, JS itd.) do nowego folderu w katalogu głównym ServBay, np.
/Applications/ServBay/www/nazwa-twojej-strony
. - Dodaj stronę przez GUI ServBay:
- Otwórz aplikację ServBay.
- Przejdź do sekcji "Websites" (Strony internetowe).
- Kliknij przycisk „Add Website” (Dodaj stronę).
- Wypełnij formularz:
- Domain (Domena): Podaj wybraną nazwę lokalnej domeny, np.
nazwa-twojej-strony.servbay.demo
. - Website Root (Katalog główny strony): Wskaż folder z kroku 2, np.
/Applications/ServBay/www/nazwa-twojej-strony
. - Web Server (Serwer WWW): Wybierz
Caddy
. - PHP Version (Wersja PHP): Wybierz wersję PHP wymaganą przez twoją stronę.
- Domain (Domena): Podaj wybraną nazwę lokalnej domeny, np.
- Kliknij „Save” lub „Create”.
- Zweryfikuj stronę: ServBay automatycznie doda nową domenę do twojego pliku hosts i skonfiguruje Caddy. Wejdź w przeglądarce na ustawioną domenę lokalną (np.
http://nazwa-twojej-strony.servbay.demo
) i sprawdź, czy strona ładuje się poprawnie. - Konfiguracja bazy danych: Jeśli strona korzysta z bazy danych, upewnij się, że odpowiednia usługa w ServBay (np. MySQL lub PostgreSQL) jest uruchomiona, a dane logowania w plikach konfiguracyjnych Twojej strony są aktualne (adres bazy to zazwyczaj
127.0.0.1
lublocalhost
, podaj właściwy użytkownik i hasło).
Jak ServBay generuje konfigurację Caddy
Przykład typowej konfiguracji NGINX dla Laravel (do wglądu)
Poniżej znajduje się przykładowy plik konfiguracyjny NGINX dla strony opartej na Laravel. Pokazuje on, jak w NGINX ustawić katalog główny, plik wejściowy (index.php
) i obsługę FastCGI PHP:
nginx
server {
listen 80;
server_name laravel.servbay.demo; # Przykładowa domena ServBay
root /Applications/ServBay/www/laravel/public; # Katalog publiczny Laravela
index index.php index.html index.htm;
location / {
# Najpierw próba bezpośredniego dostępu; w razie braku – przekierowanie do index.php
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Obsługa FastCGI dla PHP
include fastcgi_params;
# Domyślna ścieżka do gniazda PHP-CGI w ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Blokowanie dostępu do ukrytych plików
deny all;
}
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Odpowiednia konfiguracja Caddy generowana przez ServBay (bez konieczności ręcznego edytowania)
Nie trzeba ręcznie konfigurować Caddyfile
W ServBay nie musisz ręcznie tworzyć lub edytować pliku Caddyfile, by uzyskać powyższą funkcjonalność. GUI ServBay sam generuje wymagane ustawienia Caddy na podstawie konfiguracji witryny. Poniższy przykład służy tylko do wyjaśnienia, jak ServBay przekształca typowe reguły NGINX na logikę Caddy.
Oto uproszczony fragment Caddyfile, który ServBay teoretycznie wygeneruje dla powyższej strony Laravel (w praktyce konfiguracja może być bogatsza):
bash
# Tą konfiguracją zarządza automatycznie ServBay
laravel.servbay.demo {
# Ustawienie katalogu głównego strony
root * /Applications/ServBay/www/laravel/public
# Obsługa FastCGI dla PHP przez gniazdo PHP-CGI ServBay
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Serwer plików statycznych
file_server
# Matcher dla żądań nie będących plikami statycznymi
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Przekierowanie żądań dynamicznych do index.php
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Praktyczne kroki migracji Laravel:
- Skopiuj pliki projektu Laravel do
/Applications/ServBay/www/laravel
. - Upewnij się, że to katalog
laravel/public
jest wejściem dla aplikacji. - Dodaj nową stronę w GUI ServBay: domena
laravel.servbay.demo
, katalog główny/Applications/ServBay/www/laravel/public
, serwer WWW – Caddy. - Skonfiguruj połączenie z bazą w pliku
.env
Laravela. - Wejdź na
http://laravel.servbay.demo
i przetestuj stronę.
Przykład: migracja strony WordPress
Typowa konfiguracja NGINX dla WordPress (do wglądu)
Poniżej znajduje się przykładowa konfiguracja NGINX dla strony opartej na WordPressie:
nginx
server {
listen 80;
server_name wordpress.servbay.demo; # Przykładowa domena ServBay
root /Applications/ServBay/www/wordpress; # Katalog instalacji WordPressa
index index.php index.html index.htm;
location / {
# Obsługa przyjaznych linków (permalinks) WordPressa
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Obsługa FastCGI dla PHP
include fastcgi_params;
# Domyślna ścieżka do gniazda PHP-CGI w ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Blokowanie dostępu do ukrytych plików
deny all;
}
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Odpowiednia konfiguracja Caddy generowana przez ServBay (bez potrzeby ręcznej edycji)
Nie trzeba ręcznie konfigurować Caddyfile
Podobnie jak w przypadku Laravel, GUI ServBay automatycznie generuje konfigurację Caddy również dla WordPressa. Poniższy przykład pokazuje, jak ServBay obsługuje reguły, w tym przyjazne linki.
Oto jak wygląda przykładowo automatycznie generowany przez ServBay fragment Caddyfile dla WordPressa:
bash
# Tą konfiguracją zarządza automatycznie ServBay
wordpress.servbay.demo {
# Ustawienie katalogu głównego strony
root * /Applications/ServBay/www/wordpress
# Obsługa FastCGI dla PHP
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Serwer plików statycznych
file_server
# Matcher dla żądań nie będących plikami statycznymi
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Przekierowanie żądań dynamicznych do index.php – obsługa permalinków
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Praktyczne kroki migracji WordPress:
- Skopiuj pliki WordPressa do katalogu
/Applications/ServBay/www/wordpress
. - Dodaj stronę w GUI ServBay: domena
wordpress.servbay.demo
, katalog główny/Applications/ServBay/www/wordpress
, serwer WWW – Caddy. - Ustaw poprawne dane połączenia z bazą w pliku
wp-config.php
WordPressa. - Przetestuj stronę pod adresem
http://wordpress.servbay.demo
. Jeśli pojawią się problemy z permalinkami, sprawdź, czy ustawienie linków w panelu WordPressa („Ustawienia” → „Bezpośrednie odnośniki”) jest właściwe – ServBay automatycznie stosuje reguły rewritingu.
Ważne uwagi
- Połączenie z bazą danych: Po migracji koniecznie zaktualizuj konfigurację połączenia z bazą danych, aby korzystała z usług dostępnych w ServBay.
- Zmienne środowiskowe: Jeśli aplikacja korzysta ze specyficznych zmiennych środowiskowych, upewnij się, że są one ustawione w środowisku ServBay (np. w pliku
.env
PHP lub przez konfigurację ServBay). - Zaawansowana konfiguracja NGINX: Przykłady w tym artykule dotyczą typowych konfiguracji Laravel i WordPress. Jeśli twoja konfiguracja NGINX jest niestandardowa, wykorzystuje niestandardowe moduły lub niestandardowe reguły, automatyczna konfiguracja ServBay może nie uwzględnić wszystkich złożonych przypadków. W takim przypadku warto zapoznać się z dokumentacją Caddy i przemyśleć modyfikacje poprzez dostępne w ServBay punkty rozszerzeń lub zrozumienie logiki generowania konfiguracji. Jednak w przypadku większości standardowych aplikacji automatyczna obsługa ServBay w zupełności wystarcza.
- HTTPS/SSL: ServBay obsługuje konfigurację HTTPS dla lokalnych stron – możesz użyć ServBay User CA lub ServBay Public CA do wygenerowania i zaufania lokalnemu certyfikatowi SSL, bez potrzeby ręcznego ustawiania dyrektyw TLS w Caddy.
Podsumowanie
Migracja strony NGINX do serwera Caddy w ServBay to bardzo uproszczony proces dzięki automatyzacji konfiguracji po stronie ServBay. Dla popularnych aplikacji, takich jak Laravel czy WordPress, wystarczy umieścić pliki w odpowiednim katalogu i dodać stronę przez GUI. ServBay automatycznie zajmuje się przepisaniem URL, obsługą FastCGI dla PHP i innymi ustawieniami, pozwalając szybko uruchomić stronę lokalnie na Caddy.