Wie Sie Apache-Websites auf Caddy migrieren
ServBay stellt Caddy, Nginx und Apache als Webserver zur Verfügung, sodass Sie entsprechend den Anforderungen Ihres Projekts flexibel wählen können. Für die meisten PHP-Frameworks und CMS-Systeme sind in ServBay die URL-Rewrite-Regeln für Caddy und Nginx bereits vorkonfiguriert – meist ist keine weitere Einrichtung Ihrerseits nötig.
Dieser Leitfaden erklärt Ihnen, wie Sie eine ursprünglich auf Apache konfigurierte Website in Ihrer lokalen ServBay-Entwicklungsumgebung mühelos auf den mitgelieferten Caddy-Server migrieren. Als Beispiele erläutern wir den Prozess anhand typischer Laravel- und WordPress-Projekte.
Support von Apache in ServBay
ServBay unterstützt Apache vollständig als Webserver. Möchten Sie den standardmäßigen Webserver von ServBay auf Apache umstellen oder erfahren, wie Apache-Websites in ServBay konfiguriert werden? Dann lesen Sie bitte: Wie stelle ich den Standard-Webserver auf Apache um?. In diesem Artikel geht es explizit um die Migration bereits bestehender Apache-Websites in die Caddy-Umgebung von ServBay.
Überblick
Beim Wechsel eines Webservers gehen stets gewisse Anpassungen der Konfiguration und Webdateien einher. ServBay bietet die Möglichkeit, Caddy als Webserver zu nutzen und liefert für gängige PHP-Frameworks und CMS-Systeme eine „Ready-to-use“-Unterstützung. Das bedeutet: Sämtliche essenziellen Serverkonfigurationen – insbesondere Rewrite-Regeln – werden von ServBay automatisch übernommen. Die Migration einer unter Apache laufenden Website auf den Caddy-Server von ServBay gestaltet sich daher sehr einfach: Der wichtigste Schritt ist das korrekte „Anlegen“ der Website im ServBay-Interface.
Vorbereitungen für die Migration
Vor dem eigentlichen Migrationsprozess sollten Sie folgende Punkte vollständig erledigen:
- Dateien sichern: Erstellen Sie ein vollständiges Backup aller Website-Dateien, einschließlich Quellcode, Bilder und hochgeladener Inhalte im Webverzeichnis.
- Datenbank sichern: Exportieren und sichern Sie die von Ihrer Website genutzte Datenbank. ServBay unterstützt verschiedene Datenbanksysteme wie MySQL, PostgreSQL, MongoDB etc. – nutzen Sie das passende Backup-Tool.
- ServBay-Installation prüfen: Stellen Sie sicher, dass ServBay auf Ihrem macOS-Rechner ordnungsgemäß installiert und gestartet wurde.
- Caddy-Paket aktiviert: Überprüfen Sie in der ServBay-App, ob das Caddy-Paket aktiviert ist.
Migration einer Laravel-Website zu Caddy
Angenommen, Sie betreiben eine Laravel-Website mit folgender Apache-Konfiguration:
Beispiel einer Apache-Konfiguration (außerhalb von ServBay)
Hier ein typisches Beispiel für eine Apache-VirtualHost-Konfiguration einer Laravel-Website außerhalb von ServBay. Zu beachten ist, dass das DocumentRoot
auf das public
-Verzeichnis verweist und durch AllowOverride All
die .htaccess
-Datei nebst Rewrite-Regeln aktiviert ist.
<VirtualHost *:80>
ServerName laravel.demo
DocumentRoot /path/to/your/laravel/public
<Directory /path/to/your/laravel/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Hier wird in der Regel die PHP-Ausführung konfiguriert – z.B. per FPM oder mod_php
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Betrieb einer Laravel-Website mit ServBay (unter Caddy)
In ServBay müssen Sie keine manuelle Anpassung oder Umwandlung dieser Apache-Konfiguration auf Caddy-Konfiguration vornehmen. ServBay wurde entwickelt, um Konfigurationen im lokalen Entwicklungsumfeld stark zu vereinfachen. Für beliebte Frameworks wie Laravel erzeugt ServBay bei der Website-Anlage automatisch die korrekte Caddy-Konfiguration – inklusive Verweis auf das public
-Verzeichnis und aller Rewrite-Regeln.
Schritte zur Umsetzung:
- Kopieren Sie den gesamten Laravel-Projektordner in ein Unterverzeichnis des ServBay-Webverzeichnisses. Empfohlen wird z.B.
/Applications/ServBay/www/your-laravel-project
. Prüfen Sie, ob derpublic
-Ordner tatsächlich dort liegt. - Öffnen Sie die ServBay-App.
- Wechseln Sie in das ServBay-Menü „Websites“.
- Klicken Sie auf „Website hinzufügen“.
- Im Konfigurationsfenster geben Sie nun ein:
- Domain: Den gewünschten Domainnamen für den Website-Aufruf, z.B.
laravel.servbay.demo
. ServBay trägt diese Domain automatisch in Ihre lokale Hosts-Datei ein. - Webverzeichnis (Document Root): Wählen Sie mittels Browsen das
public
-Verzeichnis Ihres Laravel-Projekts, z.B./Applications/ServBay/www/your-laravel-project/public
. - Webserver: Wählen Sie
Caddy
. - PHP-Version: Geben Sie die für Ihr Projekt benötigte PHP-Version an.
- Applikationstyp: Wählen Sie
Laravel
. Dies ist der entscheidende Schritt für die automatische Konfiguration.
- Domain: Den gewünschten Domainnamen für den Website-Aufruf, z.B.
- Klicken Sie auf „Speichern“ oder „Hinzufügen“.
Nachdem Sie diese Schritte abgeschlossen haben, generiert ServBay automatisch eine passende Caddy-Konfiguration für laravel.servbay.demo
, verweist auf das richtige public
-Verzeichnis, übernimmt die URL-Rewrites und leitet PHP-Anfragen korrekt weiter. Sie können Ihre Laravel-Website nun wie gewohnt über den Browser unter http://laravel.servbay.demo
aufrufen.
Beispiel für eine (automatisch generierte) Caddy-Konfigurationsdatei
Zur Veranschaulichung sehen Sie hier eine beispielhafte Caddy-Konfiguration, wie sie ServBay automatisiert erzeugt. Beachten Sie: Sie müssen diese Datei nicht selbst erstellen oder ändern.
laravel.servbay.demo {
# Setzt das Webverzeichnis auf den public-Ordner
root * /Applications/ServBay/www/your-laravel-project/public
# PHP FastCGI-Konfiguration
# ServBay passt den socket-Pfad je nach PHP-Version und Setup automatisch an
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Dateiserver für statische Assets
file_server
# Haupt-Rewrite-Regel von Laravel: Anfragen, die kein File oder Verzeichnis sind, an index.php weiterleiten
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Migration einer WordPress-Website zu Caddy
Nehmen wir an, Sie betreiben eine WordPress-Website mit folgender Apache-Konfiguration:
Beispiel einer Apache-Konfiguration (außerhalb von ServBay)
Hier ein typisches Beispiel für eine Apache-VirtualHost-Konfiguration einer WordPress-Website außerhalb von ServBay. WordPress verwendet üblicherweise das Installationsverzeichnis als Webroot und ist auf die .htaccess
-Datei für Permalink-Funktionen via Rewrite-Regeln angewiesen.
<VirtualHost *:80>
ServerName wordpress.demo
DocumentRoot /path/to/your/wordpress
<Directory /path/to/your/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Hier wird in der Regel die PHP-Ausführung konfiguriert
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Betrieb einer WordPress-Website mit ServBay (unter Caddy)
Analog zu Laravel ist auch für eine WordPress-Seite unter ServBay und Caddy keine manuelle Caddy-Konfiguration nötig. ServBay erkennt beim Hinzufügen die Anforderungen von WordPress und generiert die entsprechende Caddy-Konfiguration automatisch.
Schritte zur Umsetzung:
- Kopieren Sie die komplette WordPress-Projektdatei(en) in ein Unterverzeichnis im ServBay-Webverzeichnis (z.B.
/Applications/ServBay/www/your-wordpress-site
). Achten Sie darauf, dassindex.php
,wp-admin
undwp-includes
etc. enthalten sind. - Öffnen Sie die ServBay-App.
- Wechslen Sie zum Menü „Websites“.
- Klicken Sie auf „Website hinzufügen“.
- Im Konfigurationsfenster:
- Domain: Gewünschte Domain für den Zugriff, z.B.
wordpress.servbay.demo
. - Webverzeichnis (Document Root): Wählen Sie das Root-Verzeichnis Ihres WordPress-Projekts (z.B.
/Applications/ServBay/www/your-wordpress-site
). - Webserver: Wählen Sie
Caddy
. - PHP-Version: Geben Sie die benötigte PHP-Version an.
- Applikationstyp: Wählen Sie
WordPress
.
- Domain: Gewünschte Domain für den Zugriff, z.B.
- Klicken Sie auf „Speichern“ oder „Hinzufügen“.
ServBay kümmert sich anschließend automatisch um die Caddy-Konfiguration für wordpress.servbay.demo
, inklusive korrektem Webroot, Rewrite-Regeln (für Permalinks) und PHP-Weiterleitungen. Sie können Ihre WordPress-Seite so direkt unter http://wordpress.servbay.demo
im Browser testen – auch Permalink-Funktionen laufen auf Anhieb.
Beispiel für eine (automatisch generierte) Caddy-Konfigurationsdatei
Dies ist eine beispielhafte Caddy-Konfiguration wie sie ServBay für WordPress generiert. Sie müssen diese Datei nicht manuell anlegen oder anpassen.
wordpress.servbay.demo {
# Setzt das Website-Root-Verzeichnis
root * /Applications/ServBay/www/your-wordpress-site
# PHP FastCGI-Konfiguration
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Dateiserver aktivieren
file_server
# WordPress-Hauptregel: Permalinks ermöglichen
# Anfragen, die keine Datei oder Verzeichnis sind, an index.php leiten
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Fazit
Die Migration von unter Apache konfigurierten Laravel- oder WordPress-Websites zu Caddy in ServBay ist ausgesprochen unkompliziert. Dank der nativen Unterstützung der gängigen Anwendungstypen übernimmt ServBay automatisch die Umwandlung der Apache-spezifischen .htaccess
- oder VirtualHost-Einstellungen in eine Caddy-konforme Syntax. Sie müssen Ihre Website lediglich im „Websites“-Interface der ServBay-App korrekt anlegen: Domain und Verzeichnis wählen, Caddy als Webserver bestimmen und den passenden Anwendungstyp (Laravel oder WordPress) auswählen. ServBay nimmt sämtliche Caddy-Konfigurationen – inklusive der komplexen Rewrite-Regeln – automatisch für Sie vor.
Diese Automatisierung spart Ihnen erheblichen Aufwand bei der Migration sowie beim Einrichten der lokalen Entwicklungsumgebung. Sie können sich voll und ganz auf Ihre Entwicklung konzentrieren, statt auf die Serverkonfiguration.