Détail de la structure des dossiers de ServBay
ServBay est un environnement de développement Web local spécialement conçu pour macOS, dont la structure de dossiers est épurée et structurée. Si vous êtes familier avec les systèmes Linux/Unix, vous remarquerez que l’organisation des fichiers dans ServBay s’inspire fortement des conventions standard de ces systèmes, facilitant ainsi la recherche et la gestion des fichiers pour les développeurs.
Comprendre la structure des dossiers de ServBay est essentiel pour développer efficacement en local, configurer votre environnement, diagnostiquer des problèmes et sauvegarder vos données. Ce guide passe en revue les dossiers principaux de ServBay et leur utilité.
L’arborescence typique d’une installation ServBay est la suivante :
ServBay
|____backup # Répertoire des fichiers de sauvegarde
| |____config # Sauvegarde des configurations
| |____databases # Sauvegarde des bases de données
| |____ssl # Sauvegarde des certificats SSL
| |____websites # Sauvegarde des fichiers des sites web
|____bin # Exécutables utilisateurs (lien symbolique vers package/bin)
|____data # Données internes de ServBay
| |____servbay # Configuration et données cœur de ServBay
|____db # Emplacement des fichiers de bases de données
| |____mariadb # Données de MariaDB
| |____mongodb # Données de MongoDB
| |____mysql # Données de MySQL
| |____postgresql # Données de PostgreSQL
| |____redis # Données de Redis
|____etc # Répertoire de configuration (lien symbolique vers package/etc)
|____logs # Répertoire des logs (lien symbolique vers package/var/log)
|____package # Dossier d’installation des paquets logiciels
| |____bin # Exécutables des paquets
| |____common # Bibliothèques partagées et de développement
| | |____imap-uw
| | |____include # Fichiers d’en-têtes (bibliothèque de développement ServBay)
| | |____lib # Bibliothèques partagées et statiques (bibliothèque de développement ServBay)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Emplacement réel des fichiers de configuration des paquets
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (autres paquets comme Python, Go, Java, Ruby, Rust, etc.)
| |____<package_name> # Dossier principal de chaque paquet
| | |____<major_version> # Répertoire des grandes versions
| | | |____<full_version> # Sous-répertoire de version complète (inclut les fichiers du paquet)
| | | |____current # Lien symbolique vers la version complète la plus récente
| | |____...
| |____sbin # Exécutables systèmes des paquets
| |____var # Fichiers de données variables (dont les logs)
| | |____log # Emplacement réel des fichiers journaux
| | |____run # Fichiers runtime (comme les .pid)
|____sbin # Exécutables systèmes (lien symbolique vers package/sbin)
|____script # Scripts internes de gestion ServBay
|____ssl # Répertoire des certificats SSL
| |____acme # Certificats SSL obtenus via ACME
| |____caddy # Certificats SSL générés automatiquement par Caddy
| |____import # Certificats SSL tiers importés par l’utilisateur
| |____private # Autorité de certification utilisateur ServBay
| |____public # Autorité de certification publique ServBay
|____tmp # Fichiers temporaires et fichiers socket
|____www # Racine des sites web
| |____servbay # Dossier ex. de site web
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
Nous détaillons ci-dessous le rôle de chaque dossier.
Dossier principal de ServBay
Par défaut, le dossier principal de ServBay se trouve à /Applications/ServBay
. Tous les paquets, fichiers de configuration, données, logs, etc. liés à ServBay y sont centralisés.
Pour protéger vos données et la stabilité de votre environnement de développement local, il est conseillé de sauvegarder régulièrement ce dossier principal. Utilisez Time Machine ou tout autre outil de sauvegarde pour effectuer des sauvegardes complètes de /Applications/ServBay
.
Racine des sites web (www
)
Les fichiers de vos sites locaux sont situés dans /Applications/ServBay/www
, point central où stocker tous vos projets web.
Pour une gestion claire et structurée, créez un sous-dossier pour chaque site ou chaque projet web (appelé « site » dans ServBay).
Exemple d’organisation pour les sites web.servbay.demo
, api.servbay.demo
et new.servbay.local
:
/Applications/ServBay/www
|____servbay.demo # Sites liés aux domaines *.servbay.demo
| |____web # Fichiers de web.servbay.demo
| |____api # Fichiers de api.servbay.demo
|____servbay.local # Sites pour les domaines *.servbay.local
| |____new # Fichiers de new.servbay.local
|____myproject # Pour d’autres projets, ex : myproject.local
1
2
3
4
5
6
7
2
3
4
5
6
7
Cette organisation facilite la distinction entre les projets et les domaines, rendant la gestion optimale.
Répertoire des fichiers de configuration (etc
)
Le dossier de configuration /Applications/ServBay/etc
est en réalité un lien symbolique vers /Applications/ServBay/package/etc
. C’est ici que ServBay stocke les fichiers de configuration principaux de tous les paquets installés (PHP, MariaDB, Nginx, Caddy, etc.).
Au quotidien, accédez-y directement via /Applications/ServBay/etc
pour consulter ou modifier les configurations. Après modification de la plupart de ces fichiers, il est nécessaire de redémarrer le service concerné pour appliquer les changements.
Exemples d’emplacements de configuration selon les paquets :
PHP (etc/php
)
Les fichiers de configuration de PHP suivent une double hiérarchie, distinguant chaque grande version. Par exemple, dans etc/php
, on trouve 5.6
, 7.4
, 8.3
, chaque dossier correspondant à une version majeure de PHP. Structure type :
php
|____5.6 # Configurations PHP 5.6
| |____conf.d # Dossier des configurations d’extensions
| |____php.ini # Fichier principal php.ini
|____7.4 # Configurations PHP 7.4
| |____conf.d
| |____php-fpm.d # Configurations de pools PHP-FPM
| |____php-fpm.conf # Fichier principal PHP-FPM
| |____php.ini
|____8.3 # Configurations PHP 8.3
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (autres versions de PHP)
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
Chaque dossier de version contient typiquement php.ini
(configuration principale), php-fpm.conf
(pour PHP-FPM si disponible), pear.conf
, etc. Les modifications exigent un redémarrage du service PHP-FPM correspondant via le panneau de contrôle ServBay ou la commande servbayctl
.
Le dossier conf.d
contient les configurations spécifiques aux extensions PHP (xdebug.ini
, opcache.ini
, redis.ini
, etc.). Ces fichiers servent à charger, décharger ou modifier la configuration des extensions. De même, un redémarrage du service PHP-FPM s’impose après modification.
Remarque : ServBay conçoit que toutes les sous-versions PHP majeures partagent les mêmes fichiers de configuration (ex : 8.3.3
et 8.3.5
utilisent le dossier etc/php/8.3
).
MariaDB / MySQL / PostgreSQL (etc/mariadb
, etc/mysql
, etc/postgresql
)
Les dossiers de configuration des bases de données sont également structurés par version (par exemple etc/mariadb/11.2
). On y trouve le fichier principal de configuration (my.cnf
pour MariaDB/MySQL, postgresql.conf
pour PostgreSQL), les modifications nécessitant un redémarrage du service correspondant. Toutes les sous-versions d’une grande version partagent la même configuration.
La réinitialisation du mot de passe root pour MariaDB/MySQL/PostgreSQL se fait généralement via des commandes dédiées ou via l’interface ServBay, et non en modifiant ces fichiers.
Caddy (etc/caddy
)
Le fichier de configuration de Caddy (Caddyfile
) se trouve dans etc/caddy
.
Attention : ServBay génère automatiquement le Caddyfile
en fonction des informations saisis dans l’interface de configuration des « sites ». N’éditer jamais ce fichier manuellement : vos changements seraient écrasés à la prochaine génération. Ajoutez vos personnalisations directement via les options de chaque site dans ServBay.
Nginx (etc/nginx
)
Le fichier principal nginx.conf
est dans etc/nginx
. Comme pour Caddy, ServBay génère ou inclut automatiquement des fragments de configuration par site. Toute modification manuelle doit être réalisée avec précaution, l’idéal étant d’utiliser ServBay pour toute gestion de configuration.
dnsmasq (etc/dnsmasq
)
Le dossier de configuration contient dnsmasq.conf
(par défaut) et domains.conf
(généré selon les domaines configurés localement).
Attention : Ces fichiers sont gérés automatiquement par ServBay pour garantir le bon fonctionnement de la résolution locale des domaines. Ne les modifiez jamais à la main, sous peine de rendre les sites locaux inaccessibles.
Configuration des autres paquets
Pour tous les autres paquets supportés (Node.js, Python, Go, Java, Ruby, Rust, etc.), les fichiers de configuration globaux ou de service se trouvent également dans un sous-dossier dédié sous etc
, selon la même logique de structure par version.
Dossier de données internes ServBay (data/servbay
)
/Applications/ServBay/data/servbay
1
Ce dossier contient les fichiers de configuration essentiels, états, et préférences utilisateur nécessaires au bon fonctionnement de l’application ServBay : gestion des paquets, paramètres des sites, configurations des bases de données, etc.
Important : Sauvegardez ce dossier. N’effacez ni ne modifiez jamais son contenu à la main, sous peine d’empêcher ServBay de démarrer ou de perdre la configuration.
Dossiers des exécutables et scripts (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
Tous les exécutables de ServBay sont dans bin
et sbin
(liens symboliques vers package/bin
et package/sbin
). Vous y trouverez tous les outils et environnements d’exécution intégrés à ServBay.
Ces dossiers sont automatiquement ajoutés à la variable d’environnement PATH (lors du lancement de ServBay), vous permettant d’accéder aux commandes suivantes en terminal :
- Outils courants :
curl
,openssl
,frpc
, etc. - Runtimes multi-versions :
php
(version par défaut),php-5.6
,php-7.4
,php-8.3
,node
(par défaut),node-16
,node-18
,python3
,go
,java
,ruby
,rustc
, etc. Il suffit de préciser la version souhaitée dans la commande. - Clients de base de données :
mysql
,psql
,mongosh
,redis-cli
, etc.
Le dossier script
(/Applications/ServBay/script
) contient les scripts systèmes internes de ServBay, servant à démarrer/stopper les services, initialiser les bases de données, exécuter les tâches de maintenance, etc. Bien qu’exécutables directement, il est préférable d’utiliser l’outil en ligne de commande ServBay servbayctl
qui encapsule ces scripts et offre une interface simplifiée.
Exemple pour démarrer le service PHP 7.4 FPM :
bash
servbayctl start php 7.4
1
L’outil servbayctl
se trouve dans /Applications/ServBay/bin
.
Dossier des bases de données (db
)
/Applications/ServBay/db
1
Les données de toutes les bases installées via ServBay sont stockées ici, séparées selon le type et la version du logiciel :
/Applications/ServBay/db/mariadb/<major_version>
: données MariaDB/Applications/ServBay/db/mysql/<major_version>
: données MySQL/Applications/ServBay/db/postgresql/<major_version>
: données PostgreSQL/Applications/ServBay/db/mongodb
: données MongoDB/Applications/ServBay/db/redis
: données Redis
Chaque grande version de base de données partage ses fichiers de données (par ex. tous les MariaDB 11.2.x stockent leurs données dans /Applications/ServBay/db/mariadb/11.2
).
Important : Ce dossier contient toutes vos bases locales. Avant toute opération critique (mise à jour de ServBay, migration, etc.), sauvegardez son contenu. L’outil de sauvegarde ServBay comprend automatiquement cette étape.
Dossier des logs (logs
)
/Applications/ServBay/logs -> package/var/log
1
Tous les journaux des services intégrés à ServBay sont regroupés dans /Applications/ServBay/logs
, qui pointe vers /Applications/ServBay/package/var/log
. Pratique pour surveiller l’activité et les erreurs de chaque service.
Les fichiers sont classés par service, par exemple :
logs/caddy/
oulogs/nginx/
: logs d’accès et d’erreurs, souvent séparés par domaine/site ;logs/php/
: logs PHP-FPM (php-fpm.log
) et erreurs PHP (errors.log
– pour les exceptions non interceptées par vos applications ou frameworks) ;logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: erreurs, requêtes lentes, etc. ;- Autres services : les logs de Python, Go, Java, Ruby, Rust, etc. sont dans leurs propres sous-dossiers.
Remarque : Certains logs (accès, erreurs) peuvent consommer beaucoup de place, surtout sur des projets actifs. Il est conseillé de vérifier et de nettoyer régulièrement les fichiers inutiles pour éviter toute saturation disque.
Dossier des paquets logiciels (package
)
/Applications/ServBay/package
1
Ici sont physiquement installés tous les paquets gérés par ServBay, chaque paquet étant dans son dossier propre structuré selon le schéma nom_paquet/major_version/full_version
. Exemple : une version PHP pourra se trouver dans /Applications/ServBay/package/php/8.3/8.3.7
.
Toutes les opérations d’installation, suppression ou changement de version se gèrent facilement depuis le panneau de contrôle ServBay.
Pour libérer de l’espace-disque, supprimez manuellement les dossiers correspondant aux anciennes versions inutilisées (ex : /Applications/ServBay/package/php/8.2/8.2.10
).
Important : Dans chaque dossier de grande version (ex : /Applications/ServBay/package/php/8.3/
), vous trouverez un lien symbolique current
pointant vers la dernière sous-version utilisée. N’effacez ni ne modifiez jamais ce lien current
, sous peine de rendre ServBay incapable de localiser les exécutables ou bibliothèques nécessaires.
Dossier des certificats SSL (ssl
)
/Applications/ServBay/ssl
1
Ce dossier stocke tout ce qui concerne les certificats SSL/TLS :
- Certificats auto-générés pour vos sites locaux via ACME, stockés en général dans
ssl/caddy
oussl/acme
selon le serveur Web utilisé ; - Autorités de certification créées par ServBay pour le HTTPS local (
ssl/private
pour la CA utilisateur,ssl/public
pour la CA publique). Après avoir installé ces CA dans votre trousseau, vous pourrez accéder à vos sites locaux en HTTPS sans message d’erreur dans le navigateur.
Dossier de sauvegarde (backup
)
/Applications/ServBay/backup
1
Destination par défaut des sauvegardes automatiques de ServBay, permettant de restaurer rapidement l’environnement en cas de problème :
backup/config
: sauvegardes des configurations ServBay et de ses paquets ;backup/databases
: sauvegardes des bases MariaDB, MySQL, PostgreSQL, MongoDB, etc. ;backup/ssl
: sauvegardes des certificats SSL ;backup/websites
: sauvegardes des projets présents dans/Applications/ServBay/www
.
Pensez à vérifier et à copier régulièrement ce dossier sur un support externe pour une stratégie de backup plus sûre.
Dossier temporaire (tmp
)
/Applications/ServBay/tmp
1
Ce dossier stocke les fichiers temporaires créés par les services en fonctionnement, principalement :
- Les fichiers
.pid
qui référencent le numéro de processus des services actifs ; - Les fichiers socket (ex :
php-cgi.sock
,mysql.sock
,pgsql.sock
, etc.) qui permettent aux applications locales de dialoguer directement avec php-fpm, les bases SQL, etc., offrant une communication plus performante et à faible latence qu’un accès TCP classique.
Composants partagés et bibliothèque de développement (package/common
)
/Applications/ServBay/package/common
1
Ce dossier contient les composants partagés nécessaires au fonctionnement de tous les paquets ServBay : bibliothèques partagées (*.dylib
) et, si installée, la bibliothèque de développement ServBay (fichiers headers dans include
, bibliothèques statiques *.a
, etc.).
Ces fichiers sont essentiels pour compiler des extensions PHP ou d’autres dépendances à partir du code source lorsque l’option « ServBay Development Library » est activée.
Attention : N’effacez jamais les fichiers *.dylib
du dossier package/common/lib
! Leur suppression empêcherait le bon fonctionnement des paquets dépendants.
Conclusion
La structure de dossiers de ServBay sépare clairement paquets, configurations, données, logs et fichiers sites, en s’inspirant des conventions Unix pour un maximum de clarté. Bien comprendre le rôle de chaque dossier facilite grandement la gestion de votre environnement local de développement Web. Pour sécuriser votre travail, sauvegardez fréquemment les dossiers critiques, en particulier data
et db
.