ServBay-Verzeichnisstruktur – Der vollständige Überblick
Einleitung
ServBay ist eine lokale Webentwicklungsumgebung für macOS und Windows, deren Verzeichnisstruktur klar und logisch aufgebaut ist. Wer mit Linux/Unix-Systemen vertraut ist, wird zahlreiche Parallelen in der Organisation der Dateien zu klassischen Unix-Dateisystemen erkennen – das erleichtert das schnelle Auffinden und Verwalten aller Komponenten für Entwickler.
Installationsstandort von ServBay
Die Standard-Installationspfade von ServBay auf den jeweiligen Betriebssystemen:
- macOS:
/Applications/ServBay
- Windows:
C:\ServBay
Ein grundlegendes Verständnis der Verzeichnisstruktur von ServBay ist essenziell, um effizient lokal zu entwickeln, die Umgebung zu konfigurieren, Fehler zu beheben und Daten zu sichern. Im Folgenden werden die wichtigsten Verzeichnisse und deren Funktion im Detail erläutert.
Eine typische ServBay-Installationsstruktur:
ServBay
|____backup # Verzeichnis für Backups
| |____config # Backup von Konfigurationen
| |____databases # Backup von Datenbanken
| |____ssl # Backup von SSL-Zertifikaten
| |____websites # Backup von Website-Dateien
|____bin # Verzeichnis für ausführbare Dateien (Symlink zu package/bin)
|____data # Interne ServBay-Daten
| |____servbay # Zentrale ServBay-Konfigurations- und Datenfiles
|____db # Speicher für Datenbankdateien
| |____mariadb # MariaDB-Daten
| |____mongodb # MongoDB-Daten
| |____mysql # MySQL-Daten
| |____postgresql # PostgreSQL-Daten
| |____redis # Redis-Daten
|____etc # Konfigurations-, Dateiordner (Symlink zu package/etc)
|____logs # Logdateien (Symlink zu package/var/log)
|____package # Verzeichnis für Softwarepakete
| |____bin # Ausführbare Dateien der Pakete
| |____common # Gemeinsame und Developer-Libraries
| | |____imap-uw
| | |____include # Header-Dateien (Dev Library)
| | |____lib # Shared/Static Libraries (Dev Library)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Tatsächlicher Speicherort der Paketkonfigurationen
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (Weitere Pakete wie Python, Go, Java, Ruby, Rust etc.)
| |____<package_name> # Hauptverzeichnis für jedes Paket
| | |____<major_version> # Hauptversionsordner
| | | |____<full_version> # Kompletter Versionsordner (enthält Paket-Dateien)
| | | |____current # Symlink auf die neueste Version
| | |____...
| |____sbin # Systemausführbare Pakete
| |____var # Variable Paketdaten (z. B. Logs)
| | |____log # Logstorage
| | |____run # Laufzeitdateien (wie .pid)
|____sbin # Systemausführbare Dateien (Symlink zu package/sbin)
|____script # Interne ServBay-Management-Skripte
|____ssl # SSL-Zertifikats-Ordner
| |____acme # Über ACME-Protokoll bezogene Zertifikate
| |____caddy # Von Caddy generierte Zertifikate
| |____import # Importierte Drittanbieter-Zertifikate
| |____private # ServBay User CA
| |____public # ServBay Public CA
|____tmp # Temporäre und Socket-Dateien
|____www # Websiteroot
| |____servbay # Beispielwebsite
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
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
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
Nachfolgend werden die einzelnen Verzeichnisse und ihre Bedeutungen im Detail beschrieben.
ServBay-Hauptverzeichnis
Das Hauptverzeichnis von ServBay befindet sich standardmäßig unter /Applications/ServBay
. Alle Programmpakete, Konfigurationsdateien, Daten, Logs und andere für ServBay relevante Dateien werden hier abgelegt.
Um die Sicherheit Ihrer lokalen Entwicklungsumgebung und Ihrer Daten zu gewährleisten, wird eine regelmäßige Sicherung des Hauptverzeichnisses empfohlen. Nutzen Sie hierzu z.B. Time Machine oder andere Backup-Tools für ein vollständiges Backup von /Applications/ServBay
.
Websiteroot-Verzeichnis (www
)
Ihre lokalen Webseitenprojekte befinden sich im Verzeichnis /Applications/ServBay/www
. Dort legen Sie für jedes Projekt oder für virtuelle Websites (bei ServBay als „Website“ bezeichnet) am besten einen eigenen Unterordner an.
Beispiel für die Struktur, wenn Sie z.B. web.servbay.demo
, api.servbay.demo
und new.servbay.local
Websites angelegt haben:
/Applications/ServBay/www
|____servbay.demo # Alle Websites mit *.servbay.demo-Domains
| |____web # Dateien für web.servbay.demo
| |____api # Dateien für api.servbay.demo
|____servbay.local # Alle Websites mit *.servbay.local-Domains
| |____new # Dateien für new.servbay.local
|____myproject # Eigenständige Projekte, z.B. myproject.local
1
2
3
4
5
6
7
2
3
4
5
6
7
Diese Struktur trennt Projekte und Domains klar und macht die Verwaltung deutlich übersichtlicher.
Konfigurationsverzeichnis (etc
)
Das Verzeichnis /Applications/ServBay/etc
ist ein Symlink und verweist auf /Applications/ServBay/package/etc
. Hier befinden sich die Konfigurationsdateien aller installierten ServBay-Pakete wie PHP, MariaDB, Nginx, Caddy und weitere.
Alle Konfigurationen können Sie direkt über /Applications/ServBay/etc
verwalten. Nach einer Änderung in den meisten Konfigurationsdateien muss der entsprechende Dienst neu gestartet werden, damit die neuen Einstellungen aktiv werden.
Typische Konfigurationsbeispiele:
PHP (etc/php
)
Die PHP-Konfigurationsordner sind zweistufig aufgebaut und nach PHP-Hauptversionen getrennt (z. B. 5.6
, 7.4
, 8.3
). Ein typisches Beispiel:
php
|____5.6 # Einstellungen für PHP 5.6
| |____conf.d # Erweiterungs-Konfigurationen
| |____php.ini # Hauptkonfiguration
|____7.4 # Einstellungen für PHP 7.4
| |____conf.d
| |____php-fpm.d # PHP-FPM Pool-Konfigurationen
| |____php-fpm.conf # Hauptkonfiguration für PHP-FPM
| |____php.ini
|____8.3 # Einstellungen für PHP 8.3
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (weitere PHP-Versionen)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Jede Hauptversionsnummer enthält z.B. php.ini
, php-fpm.conf
, pear.conf
etc. Nach Änderungen sollten Sie das jeweilige PHP-FPM-System über das ServBay-Controlpanel oder die servbayctl
-CLI neu starten.
Im Ordner conf.d
befinden sich Konfigurationsdateien für PHP-Erweiterungen, wie z. B. xdebug.ini
, opcache.ini
, redis.ini
. Auch hier gilt: Nach Änderungen ist ein Neustart des zugehörigen PHP-FPM-Service notwendig.
Hinweis: ServBay verwendet pro PHP-Hauptversion nur eine Konfiguration – z.B. teilen sich PHP 8.3.3
und 8.3.5
die Dateien im Ordner etc/php/8.3
.
MariaDB / MySQL / PostgreSQL (etc/mariadb
usw.)
Auch die Datenbank-Konfigurationsordner sind nach Versionen strukturiert – z. B. etc/mariadb/11.2
. Typisch finden Sie dort die Haupt-Konfiguration (my.cnf
für MariaDB/MySQL, postgresql.conf
für PostgreSQL). Änderungen werden nach einem Neustart des Services wirksam; pro Hauptversion gilt jeweils eine Konfiguration.
Änderungen am Datenbank-Root-Passwort erfolgen meist nicht hier, sondern via spezifischer Command-Line-Tools oder über das ServBay-Controlpanel.
Caddy (etc/caddy
)
Die Caddy-Konfiguration (Caddyfile
) liegt im Ordner etc/caddy
.
Wichtiger Hinweis: Das Caddyfile
wird bei Konfigurationsänderungen im ServBay-Controlpanel automatisch generiert. Bearbeiten Sie diese Datei nicht manuell! Ihre eigenen Änderungen könnten beim nächsten Update überschrieben werden. Eigene Einstellungen für Websites sollten immer im ServBay-Controlpanel gesetzt werden.
Nginx (etc/nginx
)
Die Nginx-Hauptkonfiguration (nginx.conf
) befindet sich im Ordner etc/nginx
. Auch sie wird in Teilen automatisch generiert. Manuelle Änderungen sind möglich, sollten aber mit Vorsicht vorgenommen werden – empfohlen ist die Verwaltung über das Controlpanel.
dnsmasq (etc/dnsmasq
)
Der Ordner enthält dnsmasq.conf
(Standardkonfiguration) und domains.conf
(automatisch generiert basierend auf Ihren lokalen Domains).
Wichtiger Hinweis: Beide Dateien werden von ServBay verwaltet und automatisch angepasst, um die korrekte Domainauflösung sicherzustellen. Jegliche manuelle Änderung kann dazu führen, dass Ihre lokalen Websites nicht erreichbar sind.
Weitere Paketkonfigurationen
Für alle anderen Pakete – etwa Node.js, Python, Go, Java, Ruby, Rust – gilt: Falls global oder dienstspezifische Konfiguratonsdateien existieren, befinden sie sich in den jeweiligen Unterverzeichnissen im etc
-Ordner und folgen ebenfalls dem Versionsprinzip.
ServBay interne Daten (data/servbay
)
/Applications/ServBay/data/servbay
1
Hier speichert ServBay sämtliche Programmeinstellungen, Statusinformationen und benutzerspezifische Details, die für das Controlpanel, Paketmanagement und Web-/Datenbankkonfiguration nötig sind.
Wichtiger Hinweis: Sichern Sie dieses Verzeichnis regelmäßig. Löschen oder verändern Sie keine Dateien manuell, da das zu Startproblemen oder Datenverlust führen kann.
Verzeichnisse für ausführbare Dateien und Skripte (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
Alle ausführbaren Dateien liegen in bin
und sbin
, die wiederum auf package/bin
bzw. package/sbin
zeigen (Symlinks). Sie enthalten sämtliche Tools und Laufzeitumgebungen.
ServBay fügt diese Verzeichnisse automatisch zum PATH hinzu. So sind die jeweiligen Tools direkt im Terminal aufrufbar, darunter:
- Diverse Hilfsprogramme wie
curl
,openssl
,frpc
, etc. - Verschiedene Sprachruntimes, z.B.
php
(Default),php-5.6
,php-7.4
,php-8.3
,node
(Default),node-16
,node-18
,python3
,go
,java
,ruby
,rustc
uvm. Sie können gezielt Versionen auswählen (z. B. durch Angabe in der Kommandozeile). - Datenbank-Clients wie
mysql
,psql
,mongosh
,redis-cli
uvm.
Das Verzeichnis script
(/Applications/ServBay/script
) beinhaltet internen Systemverwaltungs-Skripte von ServBay. Sie dienen dem Starten/Stoppen von Diensten, Initialisieren von Datenbanken oder Wartungsaufgaben. Zwar können Sie sie direkt ausführen, empfohlen wird aber das Tool servbayctl
, das eine benutzerfreundliche Schnittstelle bereitstellt.
Beispiel zum Starten von PHP 7.4 FPM:
bash
servbayctl start php 7.4
1
Das servbayctl
-Programm liegt unter /Applications/ServBay/bin
.
Datenbankverzeichnis (db
)
/Applications/ServBay/db
1
Hier werden die Datenfiles aller installierten Datenbankpakete abgelegt, ebenfalls nach Typ und Version gegliedert, z. B.:
/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 Hauptversion eines Datenbankpaketes wird immer ein gemeinsamer Datenordner genutzt, z.B. für MariaDB 11.2.x
ist das /Applications/ServBay/db/mariadb/11.2
.
Wichtiger Hinweis: Dieses Verzeichnis enthält alle Ihre lokalen Datenbanken. Vor wichtigen Aktionen (z. B. Upgrade, Migration etc.) – immer ein vollständiges Backup durchführen. Auch die interne Backup-Funktion von ServBay berücksichtigt dieses Verzeichnis.
Logdateien (logs
)
/Applications/ServBay/logs -> package/var/log
1
Alle Logs der Services liegen zentral im Ordner /Applications/ServBay/logs
(Symlink auf /Applications/ServBay/package/var/log
). So lassen sich Service-Status und Fehler schnell überwachen und auswerten.
Typische Unterverzeichnisse:
logs/caddy/
oderlogs/nginx/
: Zugriffs- und Fehlerlogs für Caddy bzw. Nginx, meist nach Domains unterteilt.logs/php/
: PHP-FPM-Logs (php-fpm.log
) und PHP-Error-Logs (errors.log
). Letztere erfassen alle schwerwiegenden Fehler, die nicht durch Framework oder Anwendung gefangen wurden.logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: Error-, Slow-Query-Logs etc. der jeweiligen Datenbankdienste.- Weitere Service-Logs zu Python, Go, Java, Ruby, Rust usw. liegen jeweils in eigenen Unterordnern.
Hinweis: Access- und Fehlerlogs können sehr große Datenmengen erzeugen – insbesondere bei aktiven Projekten. Kontrollieren und löschen Sie regelmäßig nicht benötigte Logdateien, um Speicherplatz zu sparen.
Paketverzeichnis (package
)
/Applications/ServBay/package
1
Hier werden sämtliche installierten Programmpakete verwaltet. Jedes Paket erhält einen eigenen Unterordner, typischerweise mit Schema Paketname/Hauptversion/Komplettversion
, z. B. /Applications/ServBay/package/php/8.3/8.3.7
.
Installieren, löschen und wechseln Sie Pakete bequem per Controlpanel.
Nicht mehr benötigte, alte Versionen können Sie durch Löschen der entsprechenden Komplettversionsordner (z. B. /Applications/ServBay/package/php/8.2/8.2.10
) entfernen und so Speicherplatz freigeben.
Wichtiger Hinweis: Im Hauptversionsverzeichnis (z. B. /Applications/ServBay/package/php/8.3
) existiert meist ein Symlink namens current
, der auf die aktuell aktive oder neueste Version zeigt. Löschen oder verändern Sie diesen Symlink nicht, da sonst ServBay die Programme oder Libraries nicht mehr findet und Dienste fehlschlagen.
SSL-Zertifikate (ssl
)
/Applications/ServBay/ssl
1
Dieses Verzeichnis enthält alle SSL- bzw. TLS-Zertifikate.
- Automatisch bezogene Zertifikate für Ihre lokalen Websites über das ACME-Protokoll (meist im Unterordner
ssl/caddy
oderssl/acme
, je nachdem welcher Webserver genutzt wird) - Für lokale HTTPS-Entwicklung generierte Stammzertifikate (User CA) und öffentliche Zertifikate (Public CA) – gespeichert in
ssl/private
undssl/public
. Nach Installation im System-Truststore werden durch ServBay ausgestellte Zertifikate von Browsern als vertrauenswürdig anerkannt und HTTPS-Warnungen vermieden.
Backupverzeichnis (backup
)
/Applications/ServBay/backup
1
Alle Backups, die von ServBay automatisch erzeugt werden, landen hier. ServBay kann folgende Bereiche sichern:
backup/config
: Programmeinstellungen und Paketkonfigurationenbackup/databases
: Daten von MariaDB, MySQL, PostgreSQL, MongoDB etc.backup/ssl
: SSL-Zertifikatebackup/websites
: Backups der Websiteprojekte unter/Applications/ServBay/www
Prüfen Sie das Verzeichnis regelmäßig und verschieben Sie relevante Backups nach Bedarf auf externe Speicher, um die Datensicherheit zu erhöhen.
Temporäre Dateien (tmp
)
/Applications/ServBay/tmp
1
Hier werden temporäre Dateien diverser Dienste gespeichert, wie z. B. .pid
-Dateien und Sockets.
.pid
-Dateien: Enthalten die Prozess-IDs laufender Dienste.- Socket-Dateien: Files wie
php-cgi.sock
,mysql.sock
,pgsql.sock
etc. ermöglichen die direkte Kommunikation lokaler Prozesse via Unix-Domain-Socket mit z. B. php-fpm und Datenbanken. Das ist performanter und latenzärmer als TCP, besonders bei Kommunikation auf derselben Maschine.
Gemeinsame Komponenten & Developer-Libraries (package/common
)
/Applications/ServBay/package/common
1
Hier liegen von ServBay genutzte gemeinsame Komponenten und Shared Libraries (z. B. *.dylib
) sowie optional Developer-Libraries.
Wenn Sie die ServBay Development Library installiert haben, finden Sie im include
-Ordner Headerfiles und im lib
-Ordner statische (*.a
) und Link-Libraries (*.la
). Diese werden benötigt, falls Sie PHP-Extensions oder andere Software auf Basis der ServBay-Umgebung kompilieren möchten.
Wichtiger Hinweis: Löschen Sie keine *.dylib
-Dateien im Verzeichnis package/common/lib
– sie sind für die Funktion der ServBay-Dienste unerlässlich.
Fazit
Die Verzeichnisstruktur von ServBay trennt Softwarepakete, Konfigurationen, Daten, Logs und Webprojekte nach klassischen Unix-Konventionen, sodass Entwickler ihr lokales Setup intuitiv und effizient verwalten können. Ein vertieftes Verständnis der Verzeichniszwecke steigert Ihre Produktivität und den Komfort bei Entwicklung mit ServBay. Vergessen Sie nie, die wichtigsten Ordner (data
, db
etc.) regelmäßig zu sichern, um Verlust Ihrer Entwicklungsarbeit vorzubeugen.