CHAPITRE 17 — Préparer un site Dolibarr Website
🛠️ Chapitre 17 — Préparer un site Dolibarr Website
Avant de pouvoir éditer un site via InfraSStudio,le module, ce site doit exister côté Dolibarr Website. Ce chapitre est destinés'adresse au développeur qui repartdémarre d'uneun feuillenouveau blancheprojet : créer le site, le câbler proprement, et préparer le terrain pour le Studio.
🎬 Étape 1 — Créer le site dans Dolibarr Website
- Connectez-vous à Dolibarr en
admin.tant qu'administrateur. AllezRendez-vous dans Accueil → Sitesweb.web.- Cliquez sur
«Nouveau site». - Renseignez les informations suivantes :
- Référence
—:slugidentifiant court sansespaceespace,:par exemplemonsite,oukeaticweb. C'est l'identifiant interne, utilisé partout (URLs des wrappers, dossiersdata,de…)données, constantes de configuration). - Description
—: libelléoptionnel.facultatif. - Virtualhost principal
—: URLpubliquepublique,:par exemplehttps://monsite.com. - Langue principale
—:localecodeISOde:la locale, par exemplefr_FR,en_US, etc.. - Autres langues
—:CSVvaleurs:séparées par des virgules, par exempleen_US,de_DE,es_ES.
- Référence
- Enregistrez.
💡 Convention de référence — — PréférezPrivilégiez un slugidentifiant court et stable. Cette refréférence apparaîtra dans les chemins de fichiers, les URLs internes et les constantes de configuration. La changermodifier plusultérieurement tardnécessite demandeplusieurs un peu de chirurgie.ajustements.
🌐 Étape 2 — Configurer le virtualhost Apache
DolibarrLe module Website ne configure pas Apache pour vous. Vous devez créer un VirtualHost qui pointe sur le docroot du site.
LayoutArborescence filesystem standard
type
/var/www/monsite/ # docroot Apache du site
├── index.php # wrapper page d'accueil
├── <alias>.php # autres wrappers générés
├── master.inc.php # bootstrap (inclut DOL_DOCUMENT_ROOT)
├── medias -> symlinklien symbolique vers DOL_DATA_ROOT/<entity>/medias/
└── ...
DOL_DATA_ROOT/<entity>/website/monsite/ # dossier datade données du site
├── page1.tpl.php # templatesgabarits des pages
├── page2.tpl.php
├── ...
└── htmlheader.html # headen-tête commun éventuel
Exemple de VirtualHost minimal
<VirtualHost *:443>
ServerName monsite.com
DocumentRoot /var/www/monsite
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/monsite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/monsite.com/privkey.pem
<Directory /var/www/monsite>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# PHP-FPM dédié recommandé
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.2-fpm.monsite.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
ℹ️Note — Un pool PHP-FPM dédié —est Recommandérecommandé pour isoler les performances et les variables d'environnement par site. Le pool peut tourner sous un userutilisateur spécifique (www-data-monsite) pour lesfaciliter la gestion des permissions.
🔗 Étape 3 — Le symlinklien symbolique medias
Pour que les images uploadéestéléversées soient servies directement par Apache (mode média « native »), il faut un symlinklien symbolique :
cd /var/www/monsite
ln -sfn /mnt/data/dolibarr/<entity>/medias medias
ls -la medias # doit pointer sur le dossier datade données Dolibarr
💡Conseil — Si vous ne pouvez pas créer ce symlinklien —symbolique, Basculezbasculez le site en mode média « module » dans la configuration InfraSStudio.du module. Les images seront servies via document.php, avec un coût de performance modéré.
🐛 Étape 4 — Le master.inc.php multicompany
Si vousvotre tournezinstallation Dolibarr fonctionne en multicompany Dolibarr,multicompany, le fichier master.inc.php du site doit définir DOLENTITY avant dele bootstrapperchargement :
<?php
// /var/www/monsite/master.inc.php
define('DOLENTITY', 2); // l'entity ducorrespondant au client
require_once '/var/www/dolibarr/htdocs/master.inc.php';
⚠️Avertissement Sans DOLENTITY— — Sur une instance multicompany,multicompany sans DOLENTITY, le site retournerarenverra une erreur 503 ou affichera les données de la mauvaise entity. C'est l'erreur la plus fréquentefréquemment rencontrée lors de la mise en route.service.
📄 Étape 5 — Créer la page d'accueil
Toujours dans le module Website Dolibarr :
- Sélectionnez votre site.
- Cliquez sur
«Nouvelle page». - Renseignez :
- Page URL
—:home,index,ousimilaire.autre. - Title
—: Accueil.Accueil. - Type container
—:page. - Lang
—:fr_FR. - Status
—: Brouillon (vouslepasserezpassage à Publié interviendra plus tard).
- Page URL
- Enregistrez.
- Dolibarr crée automatiquement les fichiers
/var/www/monsite/home.phpetpage<N>.tpl.php.
🔌 Étape 6 — Activer le site dans InfraSStudio
le module
ProcédureLa expliquéeprocédure complète est détaillée au Chapitre 7. RésuméEn résumé :
- Outils → InfraSStudio → Configuration.
- Cochez votre site dans la liste.
- Choisissez le mode média (native recommandé).
- Enregistrez.
📋 Étape 7 — Annoter les premières pages avec des slots
C'estCette leétape sujetfait l'objet du Chapitre 18. MaisEn en deuxquelques mots : éditezmodifiez le fichier page<N>.tpl.php pour ajouter des tokens {{slot:nom|type=...}} aux endroits que vous voulezsouhaitez rendre éditables.
🩺 Étape 8 — Vérifier avec la page Diagnostic
Avant de livrer le site au client, lancez le diagnostic (Outils → InfraSStudio → Diagnostic) :
✅TousToutlesvertvoyants verts dans Environnement, Schéma SQL,Stockage,Stockage et Intégration Dolibarr.✅Le sitemanagégéré apparaît dans la section Sites avec docroot résolu, mode médiaOK,correct et dossierdatadeinscriptible.données accessible en écriture.
📋 Récapitulatif
✅ Votre site est prêt si :
- Le site est créé dans Dolibarr Website (
référenceréférence,+ virtualhost +virtualhost, langues). - Le VirtualHost Apache pointe sur le bon docroot.
- Le
symlinklien symboliquemediasest en place (mode native), ou la constanteINFRASSTUDIO_SITE_<id>_MEDIA_MODE=moduleest définie. - Le fichier
master.inc.phpdéfinitDOLENTITYen multicompany. - Au moins une page existe (l'accueil).
- Le site est coché dans la configuration
InfraSStudio.du module. - La page Diagnostic est entièrement verte.
AuLe prochainchapitre chapitre,suivant onaborde entrel'annotation dansdes le vif : annoter le HTMLtemplates avec des slots.slots.