Gedetailleerde Uitleg van de ServBay Directorystructuur
ServBay is een lokaal webontwikkelplatform speciaal ontworpen voor macOS, met een overzichtelijke en gestructureerde directoryopbouw. Als je vertrouwd bent met Linux/Unix-systemen, zul je veel overeenkomsten vinden met de standaard bestandsstructuur. Dit helpt ontwikkelaars snel verschillende bestandstypen te lokaliseren en beheren.
Kennis van de structuur van ServBay is essentieel voor efficiënt lokaal ontwikkelen, het configureren en troubleshooten van de omgeving, én het veiligstellen van je data. Dit document behandelt alle hoofdmaplocaties en hun functies.
Een typische ServBay-installatiestructuur ziet er als volgt uit:
ServBay
|____backup # Directory voor back-upbestanden
| |____config # Backup van configuraties
| |____databases # Backup van databases
| |____ssl # Backup van SSL-certificaten
| |____websites # Backup van websitebestanden
|____bin # Directory voor uitvoerbare bestanden (symlink naar package/bin)
|____data # Interne data van ServBay
| |____servbay # Kernconfiguraties en gegevens van ServBay
|____db # Map voor databasebestanden
| |____mariadb # MariaDB databasbestanden
| |____mongodb # MongoDB databasbestanden
| |____mysql # MySQL databasbestanden
| |____postgresql # PostgreSQL databasbestanden
| |____redis # Redis databasbestanden
|____etc # Configuratiebestanden (symlink naar package/etc)
|____logs # Logbestanden (symlink naar package/var/log)
|____package # Softwarepakketinstallaties
| |____bin # Uitvoerbare bestanden van pakketten
| |____common # Gemeenschappelijke en ontwikkelbibliotheken
| | |____imap-uw
| | |____include # Headerbestanden (ServBay Development Library)
| | |____lib # Gedeelde en statische bibliotheken (ServBay Development Library)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Werkelijke locatie config bestanden van pakketten
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (andere pakketten zoals Python, Go, Java, Ruby, Rust, enz.)
| |____<package_name> # Hoofdmappen van individuele pakketten
| | |____<major_version> # Map met hoofdversie
| | | |____<full_version> # Map met volledige versie (bevat pakket zelf)
| | | |____current # Symlink naar de nieuwste volledige versie
| | |____...
| |____sbin # Systeemuitvoerbare bestanden van pakketten
| |____var # Variabele data (zoals feitelijke locatie logs)
| | |____log # Werkelijke loglocatie
| | |____run # Runtime-bestanden (zoals .pid-bestanden)
|____sbin # Systeemuitvoerbare bestanden (symlink naar package/sbin)
|____script # Interne beheer scripts van ServBay
|____ssl # SSL-certificaatmap
| |____acme # SSL-certificaten via ACME protocol
| |____caddy # Door Caddy gegenereerde SSL-certificaten
| |____import # Door gebruiker geïmporteerde SSL-certificaten
| |____private # ServBay User CA
| |____public # ServBay Public CA
|____tmp # Tijdelijke bestanden en socketbestanden
|____www # Webroot-directory
| |____servbay # Voorbeeldmap voor websites
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
Hieronder volgt een toelichting op de verschillende mappen.
ServBay Hoofdmap
De hoofdmap van ServBay is standaard /Applications/ServBay
. Alle bij ServBay horende pakketten, configuraties, data, logs enzovoorts bevinden zich in deze directory.
Voor een veilige ontwikkelomgeving en dataveiligheid, wordt aanbevolen regelmatig een back-up te nemen van deze hoofdmap. Gebruik bijvoorbeeld Time Machine of een ander back-upprogramma om /Applications/ServBay
volledig veilig te stellen.
Webroot Directory (www
)
Websites worden geplaatst in /Applications/ServBay/www
. Hier bewaar je de bestanden van al je lokale websiteprojecten.
Voor overzichtelijkheid en betere beheerbaarheid wordt het aangeraden om in deze map voor elk afzonderlijk websiteproject of ‘virtuele website’ (in ServBay simpelweg ‘website’ genoemd) een eigen submap aan te maken.
Bijvoorbeeld, als je de websites web.servbay.demo
, api.servbay.demo
en new.servbay.local
aanmaakt, ziet de structuur er als volgt uit:
/Applications/ServBay/www
|____servbay.demo # Alle *.servbay.demo domeinen
| |____web # Websitebestanden van web.servbay.demo
| |____api # Websitebestanden van api.servbay.demo
|____servbay.local # Alle *.servbay.local domeinen
| |____new # Websitebestanden van new.servbay.local
|____myproject # Andere losse projecten, zoals myproject.local
1
2
3
4
5
6
7
2
3
4
5
6
7
Deze aanpak maakt het eenvoudig om projecten en domeinen te scheiden.
Configuratiemap (etc
)
De configuratiebestanden staan in /Applications/ServBay/etc
, een symlink naar /Applications/ServBay/package/etc
. Hierin staan de instellingen van alle geïnstalleerde softwarepakketten (zoals PHP, MariaDB, Nginx, Caddy, enz.).
Je kunt deze besturingsbestanden rechtstreeks bewerken via het /Applications/ServBay/etc
pad. Nadat je aanpassingen hebt gemaakt, moet meestal de bijbehorende service herstart worden om de wijziging actief te maken.
Hieronder voorbeelden van veelgebruikte configuratiepaden:
PHP (etc/php
)
PHP-configuratie gebruikt een tweelaagse structuur voor uiteenlopende hoofdversies. In etc/php
vind je bijvoorbeeld mappen als 5.6
, 7.4
, 8.3
, enz. Elke map omvat de instellingen voor een PHP-hoofdversie. Typische structuur:
php
|____5.6 # Configuratie voor PHP 5.6
| |____conf.d # Uitbreidingsinstellingen
| |____php.ini # Hoofdconfiguratiebestand PHP
|____7.4 # Configuratie voor PHP 7.4
| |____conf.d # Uitbreidingsinstellingen
| |____php-fpm.d # Poolconfiguraties voor PHP-FPM
| |____php-fpm.conf # Hoofdconfiguratie PHP-FPM
| |____php.ini # Hoofdconfiguratiebestand PHP
|____8.3 # Configuratie voor PHP 8.3
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (andere PHP-versies)
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
In elke versie vind je bestanden zoals php.ini
(hoofdbestand), php-fpm.conf
(voor FPM, indien ondersteund), pear.conf
, enz. Na wijzingen is het zaak om via het controlepaneel van ServBay of het commando servbayctl
de betreffende PHP-FPM service opnieuw te starten.
De map conf.d
bevat configuraties voor PHP-extensies, zoals xdebug.ini
, opcache.ini
, redis.ini
, enz. Wijzig je hier iets, dan moet de PHP-FPM service ieder keer opnieuw gestart worden.
Let op: Binnen ServBay delen kleine PHP-revisies van dezelfde hoofdversie dezelfde configuratiebestanden. Dus, PHP 8.3.3
en 8.3.5
gebruiken altijd de instellingen uit etc/php/8.3
.
MariaDB / MySQL / PostgreSQL (etc/mariadb
, etc/mysql
, etc/postgresql
)
Ook databasepakketten hebben een op versieniveau gestructureerde map, bijvoorbeeld etc/mariadb/11.2
. Hierin vind je de hoofdconfig (zoals my.cnf
voor MariaDB/MySQL en postgresql.conf
voor PostgreSQL). Na aanpassingen dien je altijd de service opnieuw op te starten. Kleine versies delen ook hier dezelfde configuratie.
Het resetten van het root-wachtwoord doe je meestal niet via configuratiebestanden, maar via specifieke commando’s of via het ServBay control panel.
Caddy (etc/caddy
)
Het configuratiebestand van Caddy (Caddyfile
) staat in etc/caddy
.
Belangrijk: ServBay genereert dit bestand automatisch op basis van de site-instellingen die je via het control panel maakt. Wijzig dit bestand niet handmatig, je aanpassingen worden anders bij de volgende hergeneratie overschreven. Custom instellingen voor een bepaalde site voeg je toe via het sitebeheer in ServBay.
Nginx (etc/nginx
)
Het hoofdconfiguratiebestand van Nginx, nginx.conf
, staat in etc/nginx
. Net als bij Caddy wordt de configuratie deels automatisch gegenereerd door ServBay. Handmatige wijzigingen zijn zelden nodig en worden afgeraden; gebruik waar mogelijk het ServBay beheerpanel.
dnsmasq (etc/dnsmasq
)
De dnsmasq-configuratiemappen bevatten dnsmasq.conf
(standaard) en domains.conf
(door ServBay automatisch gegenereerd op basis van lokale domeinen).
Let op: Beide bestanden worden automatisch beheerd door ServBay. Pas deze bestanden niet handmatig aan, anders werken je lokale domeinnamen mogelijk niet meer correct.
Overige pakketconfiguraties
Overige ondersteunde software (Node.js, Python, Go, Java, Ruby, Rust, enz.) gebruiken vergelijkbare structuur en bevinden zich in submappen van etc
, georganiseerd per versie indien van toepassing.
Interne Datamap (data/servbay
)
/Applications/ServBay/data/servbay
1
Deze map bevat essentiële configuraties, statusbestanden en gebruikersinstellingen die nodig zijn voor het correct functioneren van ServBay — onder meer beheer van het control panel, sites, databases en pakketten.
Belangrijk: Neem regelmatig een back-up. Verwijder of wijzig hier geen bestanden handmatig, anders kan ServBay niet meer starten of raken configuraties verloren.
Directories voor Uitvoerbare Bestanden en Scripts (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
Alle uitvoerbare bestanden zijn samengebracht in de mappen bin
en sbin
(symlinks naar respectievelijk package/bin
en package/sbin
). Hieronder vallen hulpmiddelen, interpreters en taalruntimes.
Je kunt deze bestanden direct vanaf de terminal benaderen, omdat ServBay de paden toevoegt aan je PATH-variabele (doorgaans bij opstarten). Dit omvat bijvoorbeeld:
- Allerlei tools: zoals
curl
,openssl
,frpc
, enz. - Meerdere taalversies:
php
(standaard),php-5.6
,php-7.4
,php-8.3
,node
,node-16
,node-18
,python3
,go
,java
,ruby
,rustc
, enz. Specifieke versies kun je aanroepen door het versienummer aan het commando toe te voegen. - Database clients: zoals
mysql
,psql
,mongosh
,redis-cli
, enz.
De map script
(/Applications/ServBay/script
) bevat interne beheerscripts voor ServBay (services starten/stoppen, databases initialiseren, onderhoudstaken, enz.). Je kunt deze scripts handmatig aanroepen, maar gebruik bij voorkeur de servbayctl
cli-tool die deze scripts gebruikersvriendelijk aanstuurt.
Bijvoorbeeld, om PHP 7.4 FPM te starten:
bash
servbayctl start php 7.4
1
Het programma servbayctl
staat standaard in /Applications/ServBay/bin
.
Databasebestandenmap (db
)
/Applications/ServBay/db
1
Hier slaat ServBay de daadwerkelijke databestanden van de geïnstalleerde databases op. De structuur is per type en per (hoofd)versie:
/Applications/ServBay/db/mariadb/<major_version>
: MariaDB databestanden/Applications/ServBay/db/mysql/<major_version>
: MySQL databestanden/Applications/ServBay/db/postgresql/<major_version>
: PostgreSQL databestanden/Applications/ServBay/db/mongodb
: MongoDB databestanden/Applications/ServBay/db/redis
: Redis databestanden
Per databasesoftware wordt één datamap per hoofdversie gebruikt. Dus MariaDB 11.2.x
gebruikt altijd /Applications/ServBay/db/mariadb/11.2
.
Let op: Hier staat álle lokale databasegegevens. Bij belangrijke acties zoals upgrades of migraties, maak altijd vooraf een volledige back-up van de /Applications/ServBay/db
map. De back-upfunctie van ServBay neemt deze data ook automatisch mee.
Logmap (logs
)
/Applications/ServBay/logs -> package/var/log
1
Alle logbestanden van geïntegreerde services staan in /Applications/ServBay/logs
, een symlink naar /Applications/ServBay/package/var/log
. Hiermee kun je centraal de logs en foutmeldingen van de verschillende services monitoren.
Logs zijn gestructureerd per service:
logs/caddy/
oflogs/nginx/
: Toegang- en foutlogs, vaak verder gesorteerd per domein.logs/php/
: PHP-FPM logs (php-fpm.log
) en PHP errors (errors.log
).errors.log
toont fatale fouten die niet door de applicatie zelf worden opgevangen.logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: Logs van elke betreffende database, inclusief fout- en slow query logs.- Overige logs: Diensten als Python, Go, Java, Ruby en Rust hebben hun eigen submappen.
Let op: Vooral toegang- en foutlogs kunnen hard oplopen in grootte, vooral bij actieve projecten. Controleer en verwijder daarom regelmatig oude logbestanden.
Pakketdirectory (package
)
/Applications/ServBay/package
1
Alle geïnstalleerde softwarepakketten worden in deze map beheerd, per pakket en per versie. De structuur: pakketnaam/hoofdversie/volledige versie
, zoals /Applications/ServBay/package/php/8.3/8.3.7
.
Installeren, verwijderen en wisselen van pakketten kan eenvoudig via het ServBay control panel.
Oude, ongebruikte versiemappen kun je desgewenst zelf verwijderen om ruimte te besparen (bijv. /Applications/ServBay/package/php/8.2/8.2.10
).
Belangrijk: In een hoofdversiemap (bijv. /Applications/ServBay/package/php/8.3
) is altijd een symlink current
aanwezig die wijst naar de actieve of nieuwste subversie. Verwijder of wijzig deze link nooit handmatig; anders kan ServBay het pakket niet meer vinden of gebruiken.
SSL-certificaatdirectory (ssl
)
/Applications/ServBay/ssl
1
Deze map bevat alles omtrent SSL/TLS-certificaten, waaronder:
- Door ServBay automatisch via ACME aangevraagde certificaten voor je lokale websites (
ssl/caddy
ofssl/acme
, afhankelijk van de gebruikte webserver). - Door ServBay gegenereerde root-CA’s en publieke CA's voor lokale HTTPS-ontwikkeling (
ssl/private
enssl/public
). Door deze CA’s toe te voegen aan je besturingssysteem voorkom je waarschuwingen in de browser voor zelfondertekende certificaten op je lokale sites.
Back-up Directory (backup
)
/Applications/ServBay/backup
1
Deze map is bedoeld voor back-ups die door de automatische back-upfunctie van ServBay worden gemaakt. Hierin vind je onder andere:
backup/config
: Back-ups van ServBay kerninstellingen en pakketconfiguratiesbackup/databases
: Back-ups van o.a. MariaDB, MySQL, PostgreSQL, MongoDBbackup/ssl
: Back-up van SSL-certificatenbackup/websites
: Back-up van websitebestanden uit/Applications/ServBay/www
Controleer deze map regelmatig en overweeg het overzetten van back-ups naar een extern opslagmedium voor optimale dataveiligheid.
Tijdelijke Bestandenmap (tmp
)
/Applications/ServBay/tmp
1
Hier staan tijdelijke bestanden die services aanmaken tijdens gebruik — meestal .pid
-bestanden en socketbestanden.
.pid
-bestanden: Registreren het proces-ID van een actieve service.- Socketbestanden: Zoals
php-cgi.sock
,mysql.sock
,pgsql.sock
, enz. Lokale services communiceren zo razendsnel via Unix Domain Sockets i.p.v. TCP, met minder overhead en vertraging — ideaal voor processen op dezelfde machine.
Gemeenschappelijke Componenten en Ontwikkelbibliotheek (package/common
)
/Applications/ServBay/package/common
1
Deze map bevat gemeenschappelijke componenten en gedeelde bibliotheken (*.dylib
) waar alle geïnstalleerde softwarepakketten gebruik van maken, plus eventuele optionele ontwikkelbibliotheken.
Heb je de ServBay Development Library geïnstalleerd (voor het zelf bouwen van extensies of pakketten), dan vind je hier ook een include
-map (headerbestanden) en lib
-map (statische libs *.a
, link-libs *.la
).
Belangrijk: Verwijder nooit gedeelde bibliotheken (*.dylib
) uit package/common/lib
. Ze zijn essentieel voor de werking van veel software in ServBay.
Samenvatting
De directorystructuur van ServBay is kraakhelder en volgt beproefde Unix-conventies voor pakketten, configuratie, data, logs en websites. Dat maakt beheer voor ontwikkelaars intuïtief en doeltreffend. Door deze indeling te leren kennen, haal je het maximale uit ServBay en werk je super-efficiënt. Vergeet niet regelmatig essentiële directories — met name data
en db
— te back-uppen om dataverlies te voorkomen.