Gedetailleerde Uitleg van de ServBay Directorystructuur
Overzicht
ServBay is een lokale webontwikkelomgeving die compatibel is met macOS en Windows, ontworpen met een eenvoudige en overzichtelijke directorystructuur. Als je bekend bent met Linux/Unix-systemen, zul je merken dat ServBay qua bestandsindeling veel overeenkomsten heeft met de standaard bestandsstructuren, waardoor ontwikkelaars snel verschillende soorten bestanden kunnen vinden en beheren.
ServBay Installatielocatie
De standaard installatielocatie van ServBay op verschillende platformen:
- macOS:
/Applications/ServBay - Windows:
C:\ServBay
Een goed begrip van de directorystructuur van ServBay is essentieel voor het efficiënt lokaal ontwikkelen, voor configuratie, troubleshooting en het veilig back-uppen van je data. Dit artikel geeft een gedetailleerd overzicht van alle belangrijke directories en hun doeleinden.
Een typische installatiestructuur van ServBay ziet er als volgt uit:
ServBay
|____backup # Directory voor back-upbestanden
| |____config # Configuratie-back-ups
| |____databases # Database-back-ups
| |____ssl # SSL-certificaat back-up
| |____websites # Back-ups van websitebestanden
|____bin # Directory voor uitvoerbare gebruikersbestanden (symlink naar package/bin)
|____data # Interne gegevensdirectory van ServBay
| |____servbay # Kernconfiguratie en data van ServBay
|____db # Directory voor databasebestanden
| |____mariadb # MariaDB databestanden
| |____mongodb # MongoDB databestanden
| |____mysql # MySQL databestanden
| |____postgresql # PostgreSQL databestanden
| |____redis # Redis databestanden
|____etc # Configuratiedirectory (symlink naar package/etc)
|____logs # Directory voor logbestanden (symlink naar package/var/log)
|____package # Directory voor softwarepakketinstallaties
| |____bin # Uitvoerbare bestanden van pakketten
| |____common # Algemene en ontwikkellibraries
| | |____imap-uw
| | |____include # Headerbestanden (ServBay Development Library)
| | |____lib # Shared libraries en statische libraries (ServBay Development Library)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Werkelijke opslaglocatie van configuratiebestanden van pakketten
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (Andere pakketten zoals Python, Go, Java, Ruby, Rust etc.)
| |____<package_name> # Hoofddocumenten van pakketten
| | |____<major_version> # Directory voor hoofdversienummer
| | | |____<full_version> # Directory voor volledige versie (bevat het pakket zelf)
| | | |____current # Symlink naar meest recente volledige versie
| | |____...
| |____sbin # Uitvoerbare systeemfiles van pakketten
| |____var # Variabele data van pakketten (zoals logs)
| | |____log # Locatie van logbestanden
| | |____run # Runtime-bestanden (zoals .pid files)
|____sbin # Systeemuitvoerbare bestanden (symlink naar package/sbin)
|____script # Interne beheerscripts van ServBay
|____ssl # Directory voor SSL-certificaten
| |____acme # SSL-certificaten via ACME protocol
| |____caddy # Door Caddy automatisch aangemaakte SSL-certificaten
| |____import # Door gebruikers geïmporteerde third-party SSL-certificaten
| |____private # ServBay User CA
| |____public # ServBay Public CA
|____tmp # Directory voor tijdelijke bestanden en socketfiles
|____www # Website root-directory
| |____servbay # Voorbeeld website-directory1
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 uitgebreide toelichting per directory.
ServBay Hoofddirectory
De hoofddirectory van ServBay staat standaard in /Applications/ServBay. Alle gerelateerde pakketten, configuratiebestanden, data en logs worden hier centraal opgeslagen.
Om de veiligheid van je lokale ontwikkelomgeving en data te garanderen, is het aanbevolen om deze hoofddirectory regelmatig te back-uppen. Gebruik bijvoorbeeld Time Machine of andere backupsoftware om /Applications/ServBay volledig te back-uppen.
Website Root-directory (www)
De hoofdmap voor websitebestanden is /Applications/ServBay/www. Hier plaats je alle lokale websiteprojecten.
Voor een overzichtelijke en makkelijk beheerbare structuur wordt het sterk aanbevolen om voor elk afzonderlijk websiteproject of virtuele site (door ServBay aangeduid als "site") een aparte submap aan te maken.
Bijvoorbeeld, als je sites hebt met web.servbay.demo, api.servbay.demo en new.servbay.local zijn de aanbevolen paden:
/Applications/ServBay/www
|____servbay.demo # Alle sites onder *.servbay.demo
| |____web # Bestanden voor web.servbay.demo
| |____api # Bestanden voor api.servbay.demo
|____servbay.local # Alle sites onder *.servbay.local
| |____new # Bestanden voor new.servbay.local
|____myproject # Andere losse projecten, bijv. myproject.local1
2
3
4
5
6
7
2
3
4
5
6
7
Deze structuur zorgt voor heldere scheiding tussen verschillende projecten en domeinen, en maakt beheer eenvoudiger.
Directory voor Configuratiebestanden (etc)
De configuratiedirectory /Applications/ServBay/etc is eigenlijk een symlink die verwijst naar /Applications/ServBay/package/etc. Hier worden alle hoofdconfiguratiebestanden van ServBay pakketten (zoals PHP, MariaDB, Nginx, Caddy, enz.) opgeslagen.
In de dagelijkse praktijk kun je direct via /Applications/ServBay/etc configuratiebestanden lezen of wijzigen. Na aanpassing van de meeste configuraties is een herstart van de bijbehorende service nodig om de wijzigingen door te voeren.
Voorbeelden van standaard locaties voor configuratiebestanden van veelgebruikte pakketten:
PHP (etc/php)
De PHP configuratiedirectory is twee niveaus diep: er is onderscheid tussen de hoofdversies. Bijvoorbeeld, in etc/php vind je mappen als 5.6, 7.4, 8.3 ieder voor één PHP hoofdversie. Typische structuur:
php
|____5.6 # Configuratie voor PHP 5.6
| |____conf.d # Directory voor extensieconfiguraties
| |____php.ini # Hoofdconfiguratiebestand
|____7.4 # Configuratie voor PHP 7.4
| |____conf.d # Extensieconfiguraties
| |____php-fpm.d # Configuratie voor PHP-FPM pools
| |____php-fpm.conf # Hoofdconfiguratie PHP-FPM
| |____php.ini # Hoofdconfiguratiebestand
|____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
Elke versie bevat onder andere php.ini (hoofdbestand), php-fpm.conf (hoofdbestand FPM, indien ondersteund) en optioneel pear.conf. Na wijzigingen, herstart via het ServBay controlepaneel of gebruik het servbayctl commando om de PHP-FPM service opnieuw te starten.
De map conf.d bevat configuraties voor PHP-extensies zoals xdebug.ini, opcache.ini, redis.ini, enz. Hier kun je instellingen van extensies wijzigen, toevoegen of verwijderen. Ook hier geldt: wijzigingen zijn pas actief na een herstart van de PHP-FPM service.
Let op: ServBay is zo ontworpen dat alle minor PHP-versies binnen dezelfde hoofdversie dezelfde configuratie gebruiken. Bijvoorbeeld, PHP 8.3.3 en 8.3.5 werken beide met configuratie uit etc/php/8.3.
MariaDB / MySQL / PostgreSQL (etc/mariadb, etc/mysql, etc/postgresql)
Databasepakketconfiguraties zijn eveneens per versie gescheiden, bijvoorbeeld etc/mariadb/11.2. In deze mappen vind je hoofdconfiguratiebestanden zoals my.cnf bij MariaDB/MySQL en postgresql.conf voor PostgreSQL. Na aanpassingen moet je de databaseservice herstarten. Minor versies delen configuraties per hoofdversie.
Het resetten van root-wachtwoorden voor MariaDB, MySQL of PostgreSQL doe je niet via configuratiebestanden, maar via commandline-tools of het ServBay controlepaneel.
Caddy (etc/caddy)
Het configuratiebestand van Caddy (Caddyfile) staat in etc/caddy.
Belangrijk advies: ServBay genereert deze Caddyfile automatisch op basis van jouw configuratie in het controlepaneel. Wijzig dit bestand niet handmatig; handmatige bewerkingen kunnen bij de volgende automatische generatie overschreven worden. Voeg jouw aangepaste Caddy-instellingen altijd toe via het ServBay controlepaneel.
Nginx (etc/nginx)
Het hoofdconfiguratiebestand nginx.conf staat in etc/nginx. Net als bij Caddy zorgt ServBay voor automatische generatie of toevoeging van websitespecifieke configuratiefragmenten. Manual edits zijn mogelijk, maar beheer via het controlepaneel wordt aangeraden.
dnsmasq (etc/dnsmasq)
De configuratiedirectory van dnsmasq bevat zowel dnsmasq.conf (standaardbestand) als domains.conf (automatisch aangemaakt door ServBay op basis van jouw lokale domeinen).
Opmerking: Beide bestanden worden door ServBay beheerd om te zorgen dat lokale domeinen correct worden verwerkt. Pas deze bestanden niet handmatig aan, anders kunnen je lokale websites ontoegankelijk worden.
Andere pakketconfiguraties
Voor andere ondersteunde pakketten zoals Node.js, Python, Go, Java, Ruby, Rust, etc., worden eventuele globale of serviceconfiguratiebestanden doorgaans ook in hun eigen submap onder etc geplaatst, conform een vergelijkbare versie-indeling.
Interne Datadirectory van ServBay (data/servbay)
/Applications/ServBay/data/servbay1
Deze directory bevat essentiële configuratiebestanden, statusinformatie en gebruikersspecifieke instellingen die nodig zijn voor een goed functioneren van de ServBay applicatie. Ze zijn cruciaal voor controlepaneelfuncties, pakketbeheer en website/database instellingen.
Belangrijk advies: Maak hiervan altijd een back-up. Verwijder of wijzig hier nooit handmatig bestanden, want dit kan leiden tot een niet-opstartbare ServBay of verlies van configuratiegegevens.
Directory voor Uitvoerbare Bestanden en Scripts (bin, sbin, script)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script1
2
3
2
3
Alle uitvoerbare ServBay bestanden vind je in de mappen bin en sbin, beide zijn symlinks naar respectievelijk package/bin en package/sbin. Hier staan diverse tools en runtime binaries.
Je kunt deze bestanden direct via de terminal gebruiken, omdat ServBay deze directories toevoegt aan het systeem-PATH bij opstarten. Voorbeelden zijn:
- Diverse tools: zoals
curl,openssl,frpc, enz. - Runtime-omgevingen voor verschillende programmeertalen:
php(standaard versie),php-5.6,php-7.4,php-8.3,node(standaard versie),node-16,node-18,python3,go,java,ruby,rustc, enz. Door de versienaam toe te voegen kies je specifieke versies. - Databaseclients: zoals
mysql,psql,mongosh,redis-cli, enz.
In de map script (/Applications/ServBay/script) staan interne managementscripts voor ServBay (o.a. voor het starten/stoppen van services, initiëren van databases of onderhoudstaken). Deze scripts zijn essentieel, maar kunnen het best via ServBay's servbayctl commandline-tool worden gebruikt voor meer gemak.
Bijvoorbeeld, om PHP 7.4 FPM te starten:
bash
servbayctl start php 7.41
Het servbayctl commando vind je in /Applications/ServBay/bin.
Directory voor Databasebestanden (db)
/Applications/ServBay/db1
Hier worden alle databestanden van de geïnstalleerde databases opgeslagen. Net als configuration, is de indeling per pakket en versie, bijvoorbeeld:
/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
ServBay gebruikt per hoofdversie dezelfde databasebestanden, bijvoorbeeld alle MariaDB 11.2.x gebruiken /Applications/ServBay/db/mariadb/11.2.
Advies: Deze directory bevat al je lokale databanken. Maak een volledige back-up voordat je belangrijke acties onderneemt zoals ServBay upgrades of systeemmigraties. De ServBay automatische backup functie omvat ook databaseback-ups.
Directory voor Logbestanden (logs)
/Applications/ServBay/logs -> package/var/log1
Alle logbestanden van ServBay services zijn te vinden in /Applications/ServBay/logs, een symlink naar /Applications/ServBay/package/var/log. Dit centraal logbeheer helpt je bij het monitoren van activiteiten en fouten.
Logbestanden zijn geordend per service in subdirectories, bijvoorbeeld:
logs/caddy/oflogs/nginx/: Toegangs- en foutlogs per domein/sitelogs/php/: Logs van PHP-FPM (php-fpm.log) en fouten in PHP (errors.log).errors.logbevat grove fouten die niet binnen de applicatie zelf worden afgehandeld.logs/mariadb/,logs/mysql/,logs/postgresql/,logs/mongodb/,logs/redis/: Foutenlogs, trage queries, enz. voor de betreffende databases.- Logs van andere services zoals Python, Go, Java, Ruby, Rust, enz.
Let op: Voornamelijk toegang- en foutlogs kunnen bij actieve projecten veel schijfruimte innemen. Controleer en verwijder regelmatig onnodige logbestanden.
Directory voor Softwarepakketten (package)
/Applications/ServBay/package1
Hier worden alle geïnstalleerde en beheerde softwarepakketten van ServBay opgeslagen. Elk pakket heeft zijn eigen submap waarbij de structuur meestal is: pakketnaam/hoofdversie/volledige versie. Bijvoorbeeld, een PHP-versie kan staan in /Applications/ServBay/package/php/8.3/8.3.7.
Installeer, verwijder of switch eenvoudig tussen verschillende versies via het ServBay controlepaneel.
Wil je oude softwareversies na een upgrade verwijderen om ruimte te besparen? Verwijder dan handmatig de betreffende submap (bijv. /Applications/ServBay/package/php/8.2/8.2.10).
Belangrijk advies: In elke hoofdversiemap (bijv. /Applications/ServBay/package/php/8.3) vind je een symlink genaamd current naar de meest actuele subversiemap. Verwijder of wijzig deze symlink niet handmatig! Dit kan de werking van ServBay verstoren, waardoor het pakket niet start.
Directory voor SSL-certificaten (ssl)
/Applications/ServBay/ssl1
Deze directory bevat alle SSL/TLS certificaatbestanden, waaronder:
- Automatisch aangevraagde SSL-certificaten voor lokale sites via het ACME protocol (meestal opgeslagen onder
ssl/caddyofssl/acme, afhankelijk van de gebruikte webserver). - ServBay rootcertificaten en publieke CA's voor lokale HTTPS-ontwikkeling (
ssl/privateenssl/public). Door deze rootcertificaten te installeren in het vertrouwde systeemcertificaatbeheer worden de ServBay certificaten voor lokale sites door je browser geaccepteerd en voorkom je HTTPS-waarschuwingen.
Directory voor Back-ups (backup)
/Applications/ServBay/backup1
Hier vind je alle automatische back-ups gemaakt door ServBay. ServBay's back-ups helpen je eenvoudig belangrijke ontwikkeldata en configuratie veilig te stellen:
backup/config: Back-ups van kernconfiguratie en configuratiebestanden van pakkettenbackup/databases: Back-ups van MariaDB, MySQL, PostgreSQL, MongoDB databasesbackup/ssl: Back-ups van SSL-certificatenbackup/websites: Back-ups van je websiteprojecten uit/Applications/ServBay/www
Controleer deze map regelmatig en overweeg het overzetten naar externe opslag voor maximale databeveiliging.
Directory voor Tijdelijke Bestanden (tmp)
/Applications/ServBay/tmp1
Deze map wordt gebruikt voor tijdelijke servicebestanden, typisch .pid files en socketbestanden.
.pidfiles: Slaan de proces-ID van draaiende services op.- Socketfiles: Bijvoorbeeld
php-cgi.sock,mysql.sock,pgsql.sock, enz. Deze sockets maken het mogelijk om via een Unix Domain Socket lokaal te communiceren met php-fpm, databases, enz. Dit is sneller en efficiënter dan communicatie via een TCP-poort, vooral tussen processen op dezelfde machine.
Algemene Componenten & Ontwikkellibraries (package/common)
/Applications/ServBay/package/common1
Hier vind je alle gedeelde componenten en libraries waarop ServBay pakketten vertrouwen (bijvoorbeeld *.dylib bestanden), en optionele ontwikkelbibliotheken.
Installeer je de ServBay Development Library (optioneel, voor compileerdependenties), dan vind je hier ook een include map (headerfiles) en een lib map (statische *.a en linker *.la bestanden). Handig wanneer je vanuit source PHP-extensies wilt bouwen of gebruik wilt maken van ServBay's eigen libraries.
Belangrijk advies: Verwijder hier nooit handmatig *.dylib bestanden uit de package/common/lib map. Deze libraries zijn essentieel, en hun afwezigheid kan resulteren in foutmeldingen of niet werkende software.
Samenvatting
De directorystructuur van ServBay biedt een uiterst overzichtelijke indeling van pakketten, configuratie, data, logs en websitebestanden, geïnspireerd door klassieke Unix conventies. Hierdoor kunnen ontwikkelaars hun lokale webontwikkelomgeving intuïtief beheren. Kennis van deze indeling verhoogt je productiviteit en werkcomfort als gebruiker van ServBay. Regelmatig back-uppen van belangrijke directories (vooral data en db) is cruciaal om te voorkomen dat je kostbare ontwikkelwerk verloren gaat.
