Migration von NGINX-Websites auf den Caddy-Server von ServBay
ServBay ist eine leistungsstarke lokale Webentwicklungsumgebung, die verschiedene beliebte Webserver integriert, darunter Caddy, NGINX und Apache. Für diese Server – insbesondere Caddy und NGINX – bietet ServBay vorkonfigurierte URL-Rewrite-Regeln, die die Konfiguration für Entwickler erheblich vereinfachen.
Dieser Leitfaden gibt Ihnen eine ausführliche Schritt-für-Schritt-Anleitung, wie Sie Ihre bestehende NGINX-Website nahtlos auf den in ServBay integrierten Caddy-Server umziehen. Am Beispiel des beliebten PHP-Frameworks Laravel und des Content-Management-Systems WordPress zeigen wir den gesamten Migrationsprozess.
Umfassender Webserver-Support in ServBay
ServBay bietet vollständige Unterstützung für Caddy, NGINX und Apache. Sie können den Standard-Webserver flexibel je nach Projektbedarf wechseln. Weitere Informationen finden Sie in der Dokumentation Wie man den Standard-Webserver wechselt.
Übersicht
Eine Migration von einer Webserverumgebung zu einer anderen umfasst das Übertragen von Konfigurations- und Website-Dateien. In ServBay ist das Migrieren zu Caddy besonders unkompliziert. Für fast alle PHP-basierten Frameworks und CMS-Systeme wie Laravel, WordPress, Symfony, CodeIgniter, Drupal oder Joomla bietet ServBay eine sofort einsatzbereite Unterstützung, sodass Sie in der Regel keine Caddy-Konfigurationsdateien von Hand schreiben oder anpassen müssen. Basierend auf den Website-Einstellungen, die Sie in der GUI hinterlegen, generiert ServBay automatisch eine passende Caddyfile.
Vorbereitung der Migration
Bevor Sie mit der Migration beginnen, sollten Sie folgende Punkte beachten:
- Backup der Website-Dateien: Erstellen Sie ein vollständiges Backup aller Dateien und Ordner im Root-Verzeichnis Ihrer Website.
- Backup der Datenbank: Sichern Sie die für die Website verwendete Datenbank (z.B. MySQL, PostgreSQL, MongoDB). ServBay bietet integrierte Tools zur Datenbankverwaltung und unterstützt auch manuelle Backups.
- ServBay installieren: Stellen Sie sicher, dass Sie ServBay auf Ihrem macOS erfolgreich installiert und gestartet haben.
- Dateiposition bestätigen: Legen Sie Ihre Website-Dateien im Standard-Webverzeichnis von ServBay
/Applications/ServBay/www
oder einem Unterordner ab. Zum Beispiel könnte Ihr Projekt mit dem Namenmyproject
unter/Applications/ServBay/www/myproject
liegen.
Funktionsweise von Caddy in ServBay
Es ist wichtig zu verstehen, wie ServBay die Caddy-Konfiguration verwaltet. Anders als bei einer manuellen Verwaltung der Caddyfile können Sie in ServBay Websites einfach über die grafische Benutzeroberfläche (GUI) anlegen und konfigurieren. Sobald Sie eine Website hinzufügen und Caddy als Webserver wählen, generiert und verwaltet ServBay automatisch entsprechende Caddyfile-Fragmente, die auf Basis Ihrer Eingaben (Domain, Website-Root, PHP-Version) angepasst werden. Diese Fragmente werden von der Haupt-Caddyfile von ServBay eingebunden, damit Ihre Website einwandfrei funktioniert.
Das heißt, sobald Sie eine Website in der ServBay-GUI hinzufügen, ist die Caddy-Konfiguration erledigt. Es ist kein manuelles Bearbeiten einer .caddyfile
oder ähnlicher Dateien notwendig.
Migrationsschritte
Die Migration einer NGINX-Website auf den Caddy-Webserver von ServBay erfolgt wie folgt:
- ServBay starten: Öffnen und laufen lassen der ServBay-Anwendung.
- Website-Dateien auffinden: Kopieren oder verschieben Sie Ihre NGINX-Website-Dateien (inklusive Anwendungs-Code, Bilder, CSS, JS etc.) in einen neuen Ordner innerhalb des ServBay-Webverzeichnisses wie z.B.
/Applications/ServBay/www/your-site-name
. - Website in ServBay GUI hinzufügen:
- Starten Sie die ServBay-App.
- Navigieren Sie zum Abschnitt „Websites“.
- Klicken Sie auf „Website hinzufügen“.
- Füllen Sie die Website-Informationen aus:
- Domain: Geben Sie die gewünschte Domain für den lokalen Zugriff an, z.B.
your-site-name.servbay.demo
. - Website-Root: Wählen Sie das Verzeichnis aus Schritt 2, z.B.
/Applications/ServBay/www/your-site-name
. - Webserver: Wählen Sie
Caddy
. - PHP-Version: Wählen Sie die gewünschte PHP-Version für Ihre Site.
- Domain: Geben Sie die gewünschte Domain für den lokalen Zugriff an, z.B.
- Klicken Sie auf „Speichern“ oder „Erstellen“.
- Website überprüfen: ServBay fügt die neue Domain automatisch zur lokalen Hosts-Datei hinzu und konfiguriert Caddy. Öffnen Sie Ihren Browser und rufen Sie die lokale Domain (z.B.
http://your-site-name.servbay.demo
) auf, um zu prüfen, ob die Seite korrekt lädt. - Datenbank-Konfiguration: Falls Ihre Website eine Datenbank benötigt, vergewissern Sie sich, dass der entsprechende Datenbankdienst in ServBay (z.B. MySQL, PostgreSQL) läuft, und passen Sie die Verbindungsdaten in den Konfigurationsdateien der Website an (typische Adresse:
127.0.0.1
oderlocalhost
, Benutzername und Passwort).
Beispiel: Migration einer Laravel-Website
Typische NGINX-Konfiguration (nur als Referenz)
Nachfolgend ein Beispiel für eine gängige NGINX-Konfigurationsdatei für eine Laravel-Website – sie zeigt das Routing zum Root-Verzeichnis, die Konfiguration der index.php
und das PHP FastCGI-Handling:
server {
listen 80;
server_name laravel.servbay.demo; # Beispiel-Domain für ServBay
root /Applications/ServBay/www/laravel/public; # Zeigt auf das public-Verzeichnis von Laravel
index index.php index.html index.htm;
location / {
# Versucht, Dateien oder Verzeichnisse direkt zu laden, andernfalls Umschreiben auf index.php
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# PHP FastCGI-Verarbeitung
include fastcgi_params;
# Standard-PHP-CGI-Socket-Pfad von ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Zugriff auf versteckte Dateien verweigern
deny all;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Entsprechende Caddy-Konfiguration in ServBay (automatisch generiert, nicht von Hand erforderlich)
Keine manuelle Caddyfile-Konfiguration notwendig
In ServBay müssen Sie keine Caddyfile manuell erstellen oder anpassen, um diese Funktionen zu erreichen. Die ServBay GUI generiert alle notwendigen Einstellungen automatisch auf Basis Ihrer Website-Konfiguration. Das folgende Beispiel soll nur aufzeigen, wie ServBay intern eine vergleichbare Konfiguration abbildet und das Prinzip verdeutlichen.
Nachfolgend ein vereinfachtes Beispiel eines Caddy-Konfigurationsabschnitts, den ServBay automatisch für die oben genannte Laravel-Website generieren würde (tatsächlich ist die endgültige Konfiguration von ServBay meist noch umfassender):
# Diese Konfiguration wird von ServBay automatisch verwaltet
laravel.servbay.demo {
# Legt das Website-Root fest
root * /Applications/ServBay/www/laravel/public
# PHP FastCGI-Verarbeitung, zeigt auf den PHP-CGI-Socket von ServBay
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Aktiviert die Dateiauslieferung
file_server
# Definiert ein Matcher für nicht-statische Dateien
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Nicht-statische Dateien zum index.php umleiten
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Praktische Schritte zur Migration von Laravel:
- Kopieren Sie Ihr Laravel-Projekt nach
/Applications/ServBay/www/laravel
. - Stellen Sie sicher, dass das Verzeichnis
laravel/public
der Einstiegspunkt Ihrer Website ist. - Fügen Sie in der ServBay-GUI eine neue Website hinzu: Domain
laravel.servbay.demo
, Verzeichnis/Applications/ServBay/www/laravel/public
, WebserverCaddy
wählen. - Hinterlegen Sie die korrekten Datenbank-Verbindungsdaten in der
.env
Datei von Laravel. - Rufen Sie
http://laravel.servbay.demo
zur Überprüfung auf.
Beispiel: Migration einer WordPress-Website
Typische NGINX-Konfiguration (nur als Referenz)
Hier eine typische NGINX-Konfigurationsdatei für WordPress:
server {
listen 80;
server_name wordpress.servbay.demo; # Beispiel-Domain für ServBay
root /Applications/ServBay/www/wordpress; # Zeigt auf das WordPress-Verzeichnis
index index.php index.html index.htm;
location / {
# Rewrite-Regel für WordPress Permalinks
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# PHP FastCGI-Verarbeitung
include fastcgi_params;
# Standard-PHP-CGI-Socket-Pfad von ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Zugriff auf versteckte Dateien verweigern
deny all;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Entsprechende Caddy-Konfiguration in ServBay (automatisch generiert, nicht von Hand erforderlich)
Keine manuelle Caddyfile-Konfiguration notwendig
Auch für WordPress übernimmt die ServBay-GUI die gesamte Caddy-Konfiguration. Das folgende Beispiel erläutert nur, wie ServBay intern z.B. Permalink-Funktionen abbildet.
Hier ein beispielhafter, automatisch generierter Caddy-Konfigurationsabschnitt für die oben genannte WordPress-Seite:
# Diese Konfiguration wird von ServBay automatisch verwaltet
wordpress.servbay.demo {
# Legt das Website-Root fest
root * /Applications/ServBay/www/wordpress
# PHP FastCGI-Verarbeitung
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Aktiviert die Dateiauslieferung
file_server
# Definiert ein Matcher für nicht-statische Dateien
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Nicht-statische Dateien zum index.php umleiten (Permalink-Support)
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Praktische Schritte zur WordPress-Migration:
- Kopieren Sie Ihre WordPress-Dateien nach
/Applications/ServBay/www/wordpress
. - Fügen Sie in der ServBay-GUI eine neue Website hinzu: Domain
wordpress.servbay.demo
, Website-Root/Applications/ServBay/www/wordpress
, Webserver aufCaddy
setzen. - Hinterlegen Sie in der Datei
wp-config.php
die korrekten Datenbankverbindungsdaten. - Öffnen Sie
http://wordpress.servbay.demo
im Browser zum Test. Falls es Probleme mit den Permalinks gibt: ServBay verarbeitet die Rewrite-Regeln bereits automatisch, zusätzliche Einstellungen sind gewöhnlich nicht nötig. Überprüfen Sie ggf. in WordPress im Adminbereich unter „Einstellungen“ -> „Permalinks“, ob alles korrekt ist.
Hinweise & Tipps
- Datenbankverbindung: Nach der Migration müssen die Verbindungsinformationen für die Datenbank in Ihrem Code auf die laufenden Datenbankdienste von ServBay aktualisiert werden.
- Umgebungsvariablen: Wenn Ihre Anwendung spezielle Environment-Variablen benötigt, stellen Sie sicher, dass diese in der ServBay-Umgebung gesetzt werden (z.B. über die PHP-
.env
-Datei oder mithilfe der ServBay-Konfiguration). - Komplexe NGINX-Konfigurationen: Die Beispiele in diesem Leitfaden beziehen sich auf typische Konfigurationen für Laravel und WordPress. Sollte Ihre NGINX-Konfiguration stark angepasst, modular oder ungewöhnlich sein, kann die automatische Konfiguration von ServBay möglicherweise nicht alle Regeln vollständig abdecken. In solchen Fällen sollten Sie die offizielle Caddy-Dokumentation heranziehen und ggf. Erweiterungspunkte in der ServBay-Konfig nutzen – oder die ServBay-Generierung nachvollziehen. Für den Großteil der Standardanwendungen genügt jedoch die ServBay-Automatisierung.
- HTTPS/SSL: ServBay unterstützt die Einrichtung von HTTPS für lokale Websites. Sie können entweder die ServBay User CA oder die ServBay Public CA verwenden, um vertrauenswürdige SSL-Zertifikate für Testzwecke zu erstellen. Eine manuelle TLS-Konfiguration in der Caddyfile ist nicht nötig.
Fazit
Die Migration Ihrer NGINX-Website auf den Caddy-Server von ServBay ist dank der automatisierten Konfigurationsverwaltung in ServBay besonders einfach. Für gängige Anwendungen wie Laravel und WordPress reicht es aus, die Dateien in das richtige Verzeichnis zu legen und die Website per GUI hinzuzufügen. ServBay übernimmt automatisch die URL-Rewrites sowie das Setup für PHP FastCGI – so läuft Ihre Website innerhalb kürzester Zeit lokal auf Caddy.