ServBay-Verzeichnisstruktur im Detail
ServBay ist eine speziell für macOS entwickelte lokale Web-Entwicklungsumgebung und besticht durch eine übersichtliche, klar gegliederte Verzeichnisstruktur. Wer bereits Erfahrung mit Linux/Unix-Systemen hat, wird viele Gemeinsamkeiten mit gängigen Systemlayouts entdecken – das erleichtert das Auffinden und Verwalten verschiedenster Dateien erheblich.
Ein grundlegendes Verständnis der ServBay-Verzeichnisstruktur ist entscheidend für effizientes Arbeiten: Sei es für die lokale Entwicklung, das Anpassen des Setups, das Troubleshooting oder den Schutz und die Sicherung Ihrer Daten. Im Folgenden erläutern wir die wichtigsten Verzeichnisse von ServBay, ihre Funktion und empfohlene Nutzung.
Eine typische ServBay-Installation folgt diesem Aufbau:
ServBay
|____backup # Verzeichnis für Backups
| |____config # Backup der Konfiguration
| |____databases # Datenbank-Backups
| |____ssl # SSL-Zertifikats-Backups
| |____websites # Backups der Website-Dateien
|____bin # Benutzer-Executables (Symlink zu package/bin)
|____data # Interne ServBay-Daten
| |____servbay # Zentrale Konfiguration und Daten von ServBay
|____db # Speicherorte für Datenbankdateien
| |____mariadb # MariaDB-Daten
| |____mongodb # MongoDB-Daten
| |____mysql # MySQL-Daten
| |____postgresql # PostgreSQL-Daten
| |____redis # Redis-Daten
|____etc # Verzeichnis für Konfigurationsdateien (Symlink zu package/etc)
|____logs # Logfile-Verzeichnis (Symlink zu package/var/log)
|____package # Installationsverzeichnis der Softwarepakete
| |____bin # Paket-Executables
| |____common # Gemeinsame Komponenten und Entwickler-Bibliotheken
| | |____imap-uw
| | |____include # Header-Dateien (ServBay Development Library)
| | |____lib # Shared & Static Libraries (ServBay Development Library)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Ablageort der Paket-Konfigurationsdateien
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (sonstige Pakete wie Python, Go, Java, Ruby, Rust etc.)
| |____<package_name> # Hauptverzeichnis jedes Softwarepakets
| | |____<major_version> # Verzeichnis für Hauptversionen
| | | |____<full_version> # Komplette Versionsverzeichnisse (beinhaltet das Paket selbst)
| | | |____current # Symlink auf die aktuellste Version
| | |____...
| |____sbin # Systemexecutable der Pakete
| |____var # Variablen-Daten der Pakete (z. B. tatsächlicher Log-Ordner)
| | |____log # Ablage für Logfiles
| | |____run # Laufzeitdateien (wie .pid-Dateien)
|____sbin # Systemexecutable (Symlink zu package/sbin)
|____script # Interne Verwaltungs-Skripte von ServBay
|____ssl # SSL-Zertifikatsverzeichnis
| |____acme # Durch ACME-Protokoll erstellte Zertifikate
| |____caddy # Von Caddy generierte Zertifikate
| |____import # Nutzer-importierte Drittanbieter-Zertifikate
| |____private # ServBay User CA
| |____public # ServBay Public CA
|____tmp # Verzeichnis für temporäre & Socket-Dateien
|____www # Wurzelverzeichnis der Websites
| |____servbay # Beispielverzeichnis für Websites
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Im Folgenden werden die wichtigsten Verzeichnisse und ihre Aufgaben näher erläutert.
Hauptverzeichnis von ServBay
Das Standard-Hauptverzeichnis von ServBay liegt unter /Applications/ServBay
. Hier finden Sie sämtliche zugehörigen Dateien: Softwarepakete, Konfiguration, Daten, Logs und vieles mehr.
Um Ihre lokale Entwicklungsumgebung und Daten zu schützen, empfehlen wir regelmäßige Backups dieses Hauptverzeichnisses – idealerweise mit Time Machine oder einem anderen Backup-Tool für das komplette /Applications/ServBay
-Verzeichnis.
Website-Wurzelverzeichnis (www
)
Ihre Projekte und Webseiten legen Sie im Verzeichnis /Applications/ServBay/www
ab. Hier liegt das Root-Verzeichnis für alle lokalen Websites.
Um Übersichtlichkeit und Ordnung zu gewährleisten, empfiehlt es sich, für jede Website oder virtuelle Domain (in ServBay als „Website“ bezeichnet) einen eigenen Unterordner innerhalb www
zu erstellen.
Beispielstruktur für die Sites web.servbay.demo
, api.servbay.demo
und new.servbay.local
:
/Applications/ServBay/www
|____servbay.demo # Beinhaltet alle Sites unter *.servbay.demo
| |____web # Dateien für web.servbay.demo
| |____api # Dateien für api.servbay.demo
|____servbay.local # Beinhaltet alle Sites unter *.servbay.local
| |____new # Dateien für new.servbay.local
|____myproject # Weitere eigenständige Projekte, z. B. myproject.local
2
3
4
5
6
7
Diese Struktur erleichtert die Verwaltung unterschiedlicher Projekte und Domains erheblich.
Konfigurationsverzeichnis (etc
)
Das Konfigurationsverzeichnis /Applications/ServBay/etc
ist ein Symlink auf /Applications/ServBay/package/etc
. Hier landen sämtliche Konfigurationsdateien aller ServBay-Pakete (z. B. PHP, MariaDB, Nginx, Caddy).
Im Alltag greifen Sie über den Pfad /Applications/ServBay/etc
auf alle Konfigurationen zu, passen diese an, und starten den entsprechenden Dienst neu, damit Änderungen wirksam werden.
Beispiele für die Ablageorte gängiger Konfigurationsdateien:
PHP (etc/php
)
Das PHP-Konfigurationsverzeichnis besitzt eine zweistufige Ordnerstruktur, entsprechend den Major-Versionen (z. B. 5.6
, 7.4
, 8.3
). Beispielstruktur:
php
|____5.6 # PHP 5.6-Konfiguration
| |____conf.d # Verzeichnis für Erweiterungskonfigurationen
| |____php.ini # Hauptkonfigurationsdatei für PHP
|____7.4 # PHP 7.4-Konfiguration
| |____conf.d # Erweiterungskonfigurationen
| |____php-fpm.d # Pool-Konfiguration für PHP-FPM
| |____php-fpm.conf # Hauptkonfiguration für PHP-FPM
| |____php.ini # PHP-Hauptkonfiguration
|____8.3 # PHP 8.3-Konfiguration
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (weitere PHP-Versionen)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Jede Version enthält eine php.ini
(Hauptkonfiguration), php-fpm.conf
(für FPM, falls unterstützt), pear.conf
usw. Nach Änderungen muss der entsprechende PHP-FPM-Dienst über das ServBay-Panel oder per servbayctl
-Kommando neugestartet werden.
Der Ordner conf.d
ist für spezifische PHP-Extensions zuständig, z. B. xdebug.ini
, opcache.ini
, redis.ini
. Nach Änderungen hier ist ebenfalls ein Neustart des Dienstes nötig.
Hinweis: Für alle Minor-Versionen einer Major-Version (z. B. 8.3.3
, 8.3.5
) gilt die gleiche Konfiguration aus dem Ordner etc/php/8.3
.
MariaDB / MySQL / PostgreSQL (etc/mariadb
, etc/mysql
, etc/postgresql
)
Auch für Datenbanken erfolgt eine Unterteilung nach Versionen, z. B. etc/mariadb/11.2
. Hier finden Sie etwa my.cnf
(MariaDB/MySQL) oder postgresql.conf
(PostgreSQL). Nach Änderungen ist ein Dienstneustart erforderlich. Minor-Versionen einer Major-Version teilen sich die Konfiguration.
Um Passwörter der Root-Benutzer dieser DBs zurückzusetzen, nutzen Sie am besten CLI-Tools oder die Funktionen des ServBay-Control-Panels, nicht die Konfigurationsdateien.
Caddy (etc/caddy
)
Das Caddy-Konfigurationsfile (Caddyfile
) liegt unter etc/caddy
.
Wichtiger Hinweis: Das Caddyfile
wird automatisch auf Basis der Sites-Konfiguration im Control Panel erstellt. Bitte ändern Sie diese Datei nicht von Hand – Ihre Änderungen würden beim nächsten Generieren überschrieben. Für individuelle Settings nutzen Sie bitte die Website-Konfiguration im Control Panel.
Nginx (etc/nginx
)
Die Nginx-Konfiguration nginx.conf
finden Sie unter etc/nginx
. Auch hier werden Site-relevante Abschnitte automatisch erstellt/eingebunden. Manuelle Änderungen sollten mit Bedacht erfolgen – empfohlen wird die Admin-Verwaltung über das Control Panel.
dnsmasq (etc/dnsmasq
)
Das Verzeichnis beinhaltet dnsmasq.conf
(Standardkonfiguration) und domains.conf
(automatisch generiert gemäß Ihrer lokalen Domains).
Wichtiger Hinweis: Beide Dateien werden von ServBay erstellt und gepflegt, um korrekte lokale DNS-Auflösung zu gewährleisten. Ändern Sie diese Dateien nicht manuell, um Zugriffsprobleme auf lokale Sites zu vermeiden.
Weitere Softwarepakete
Auch Settings von Node.js, Python, Go, Java, Ruby, Rust etc. landen – sofern vorhanden – in eigenen Unterverzeichnissen nach dem gleichen Versionierungsschema in etc
.
ServBay-interne Daten (data/servbay
)
/Applications/ServBay/data/servbay
Dieses Verzeichnis enthält essentielle Konfigurationsdateien und Statusinformationen für die ServBay-Anwendung selbst sowie benutzerspezifische Settings. Es ist elementar für das Funktionieren von Control Panel, Paketmanagement, Site- und DB-Konfiguration.
Wichtiger Hinweis: Dieser Ordner sollte unbedingt gesichert, aber nicht von Hand bearbeitet oder gelöscht werden – andernfalls kann ServBay nicht mehr korrekt starten oder Konfigurationen gehen verloren.
Executable- und Script-Verzeichnisse (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
2
3
Alle ausführbaren Dateien von ServBay sind in bin
und sbin
gebündelt; beide sind Symlinks auf package/bin
bzw. package/sbin
. Hier befinden sich integrierte Tools und Laufzeiten.
Die Einträge sind dem PATH hinzugefügt (typischerweise beim Start von ServBay), sodass Sie folgende Funktionalität direkt im Terminal nutzen können:
- Bekannte Tools wie
curl
,openssl
,frpc
usw. - Verschiedene Runtime-Versionen: z. B.
php
(default),php-5.6
,php-7.4
,php-8.3
,node
(default),node-16
,node-18
,python3
,go
,java
,ruby
,rustc
. Über die Angabe der Version in der Befehlszeile steuern Sie gezielt die eingesetzte Version. - Datenbank-Clients:
mysql
,psql
,mongosh
,redis-cli
usw.
Das Verzeichnis script
unter /Applications/ServBay/script
beinhaltet interne Verwaltungs- und System-Skripte – beispielsweise zum Starten/Stoppen von Diensten, für DB-Initialisierung oder Wartung. Sie können zwar direkt ausgeführt werden, es wird jedoch empfohlen, die Kommandozeile servbayctl
(„/Applications/ServBay/bin“) als zentrale Verwaltungsstelle zu nutzen.
Beispiel, um PHP 7.4 FPM zu starten:
servbayctl start php 7.4
Das Tool servbayctl
finden Sie im Verzeichnis /Applications/ServBay/bin
.
Datenbankdateien (db
)
/Applications/ServBay/db
Hier liegen alle Datenbanken der installierten Software – strukturiert nach Typ und Version:
/Applications/ServBay/db/mariadb/<major_version>
: MariaDB-Daten/Applications/ServBay/db/mysql/<major_version>
: MySQL-Daten/Applications/ServBay/db/postgresql/<major_version>
: PostgreSQL-Daten/Applications/ServBay/db/mongodb
: MongoDB-Daten/Applications/ServBay/db/redis
: Redis-Daten
Pro Major-Version einer DB existiert jeweils ein gemeinsames Verzeichnis für die Daten (z. B. erhält die ganze MariaDB-11.2.x-Serie /Applications/ServBay/db/mariadb/11.2
).
Wichtiger Hinweis: In diesem Verzeichnis liegen sämtliche lokale Datenbanken. Vor kritischen Arbeitsvorgängen (wie ServBay-Upgrade oder Systemmigration) sollten Sie das komplette /Applications/ServBay/db
-Verzeichnis sichern. Die ServBay-Autobackup-Funktion deckt diesen Ordner ebenfalls ab.
Logfiles (logs
)
/Applications/ServBay/logs -> package/var/log
Alle Logs werden zentral unter /Applications/ServBay/logs
gespeichert (Symlink zu /Applications/ServBay/package/var/log
). So behalten Sie einfach die Kontrolle über System- und Fehlerlogs sämtlicher Dienste.
Organisiert in Unterordnern, z. B.:
logs/caddy/
oderlogs/nginx/
: Zugriff- und Error-Logs (i. d. R. nach Domain organisiert)logs/php/
: PHP-FPM-Logs (php-fpm.log
) und PHP-Error-Logs (errors.log
, vor allem für kritische Fehler, die nicht vom Framework/Ihrer Anwendung abgefangen wurden)logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: Fehler-, Slow-Query-Logs usw.- Weitere Logs für Services wie Python, Go, Java, Ruby, Rust etc.
Tipp: Besonders Zugriffs- und Error-Logs wachsen bei aktiven Projekten rasch an. Am besten regelmäßig prüfen und gegebenenfalls alte Logs löschen, um Festplattenplatz freizugeben.
Softwarepaket-Verzeichnis (package
)
/Applications/ServBay/package
Hier werden die eigentlichen Softwarepakete installiert und versioniert: Jedes Paket erhält einen eigenen Ordner (Schema: Paketname/Hauptversion/Vollversion). Ein bestimmtes PHP-Release könnte z. B. unter /Applications/ServBay/package/php/8.3/8.3.7
installiert sein.
Installieren, deinstallieren und Wechseln von Paketversionen ist bequem über das ServBay-Control-Panel möglich.
Nicht mehr benötigte Altversionen können zur Platzersparnis entfernt werden (z. B. /Applications/ServBay/package/php/8.2/8.2.10
).
Wichtiger Hinweis: Innerhalb des Hauptversions-Ordners befindet sich ein Symlink current
auf die jeweils aktivierte/neuste Version (z. B. /Applications/ServBay/package/php/8.3/current
). Verändern oder löschen Sie diesen Symlink keinesfalls manuell – andernfalls kann ServBay die Binaries oder Libraries nicht mehr korrekt finden, was zu Fehlfunktionen führt.
SSL-Zertifikatsverzeichnis (ssl
)
/Applications/ServBay/ssl
In diesem Verzeichnis werden alle SSL/TLS-bezogenen Zertifikate gespeichert:
- Durch das ACME-Protokoll automatisch erstellte Zertifikate für lokale Sites (in
ssl/caddy
bzw.ssl/acme
, abhängig vom Webserver) - Die von ServBay generierten Root- und Public-Zertifikate für lokale HTTPS-Entwicklung (
ssl/private
undssl/public
). Durch Installation dieser CA-Zertifikate in den System Keychain sind selbstsignierte Zertifikate problemlos vertrauenswürdig – HTTPS-Warnungen entfallen.
Backup-Verzeichnis (backup
)
/Applications/ServBay/backup
Das ServBay-Backup-Feature speichert hier alle Sicherungen:
backup/config
: Backups der ServBay-Kern- und Paketkonfigurationenbackup/databases
: Backups der MariaDB, MySQL, PostgreSQL, MongoDB etc.backup/ssl
: SSL-Zertifikats-Backupsbackup/websites
: Sicherungen Ihrer Website-Projekte aus/Applications/ServBay/www
Prüfen Sie dieses Verzeichnis regelmäßig und migrieren Sie Backups nach Bedarf auf externe Speichermedien – so sorgen Sie für eine optimale Datensicherheit.
Temporäre Dateien (tmp
)
/Applications/ServBay/tmp
Dieses Verzeichnis ist typische Ablagestelle für temporäre Dateien wie .pid
- und Socket-Dateien.
.pid
: Speichert die Prozess-IDs laufender Dienste- Sockets: Dateien wie
php-cgi.sock
,mysql.sock
,pgsql.sock
dienen der lokalen Prozesskommunikation via Unix Domain Socket („schneller und performanter als TCP“)
Gerade für lokale Interprozesskommunikation stellen Sockets eine schnelle und performante Alternative zur TCP-Kommunikation dar.
Gemeinsame Komponenten und Developer Libraries (package/common
)
/Applications/ServBay/package/common
Dieses Verzeichnis beinhaltet alle übergreifenden Komponenten und Libraries, die verschiedene ServBay-Pakete benötigen (z. B. *.dylib
), sowie bei Installation der optionalen ServBay Development Library die Verzeichnisse include
(Header-Dateien) und lib
(Static & Link Libraries). Das ist insbesondere für Compile-Jobs (z. B. eigene PHP-Extensions) nützlich.
Wichtiger Hinweis: Löschen Sie niemals die Library-Dateien in package/common/lib
– sie sind für die Lauffähigkeit der Softwarepakete unerlässlich!
Zusammenfassung
Die klare Trennung von Paketen, Konfiguration, Daten, Logs und Website-Files in ServBay folgt anerkannten Unix-Konventionen. Entwickelnde können dadurch ihr Arbeitsumfeld transparent, strukturiert und effizient steuern. Eine regelmäßige Sicherung der wichtigsten Ordner (insbesondere data
und db
) ist essenziell, um Datenverlust zu vermeiden und eine optimale Arbeitsbasis sicherzustellen.