# Chapitre 8 — Vérifier l'installation avec la page Diagnostic

<span style="white-space: pre-wrap;">Le module dispose d'une page dédiée qui passe en revue l'ensemble de l'intégration et indique, point par point, si tout est en ordre. </span>

<p class="callout warning">C'est le premier réflexe à adopter après une installation, après une mise à jour ou en cas de comportement inattendu.</p>

### <span style="color: rgb(35, 111, 161);">Accéder à la page Diagnostic</span>

1. <span style="white-space: pre-wrap;">Rendez-vous dans </span>***Outils → InfraS → InfraSStudio***.
2. <span style="white-space: pre-wrap;">Cliquez sur l'onglet </span>**Diagnostic**<span style="white-space: pre-wrap;"> dans le menu latéral.</span>

La page se charge et exécute en direct une série de vérifications. Chaque ligne s'accompagne d'une pastille de couleur :

<table id="bkmrk-couleursignification" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Couleur

</th><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Signification

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Vert

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Le point est correctement configuré. Aucune action n'est requise.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Orange

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Avertissement non bloquant. Le module fonctionne mais une amélioration est possible.

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Rouge

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Anomalie bloquante. Une fonctionnalité importante ne fonctionne pas correctement.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Bleu

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Information contextuelle, sans contrôle effectué.

</td></tr></tbody></table>

##### **Section 1 — Environnement**

Cette section vérifie les versions de Dolibarr et de PHP, ainsi que la présence des extensions PHP requises.

<table id="bkmrk-contr%C3%B4leaction-en-ca" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Contrôle

</th><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Action en cas d'anomalie

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Version Dolibarr**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Mettez Dolibarr à jour (entre 18.0.0 et 24.x.x).

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Version PHP**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Demandez à votre hébergeur de basculer sur une version comprise entre 7.4 et 8.4.

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Extensions PHP**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Installez les extensions manquantes (par exemple </span>

`<span class="editor-theme-code">apt install php-mbstring php-gd</span>`

).

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Module InfraSStudio activé**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Activez le module dans Configuration → Modules.

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Module Website (dépendance)**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Activez le module Website dans **Configuration → Modules.**

</td></tr></tbody></table>

##### **Section 2 — Schéma SQL**

Cette section vérifie la présence des cinq tables du module dans la base de données :

- `<span class="editor-theme-code">llx_infrasstudio_slot</span>`
- `<span class="editor-theme-code">llx_infrasstudio_media</span>`
- `<span class="editor-theme-code">llx_infrasstudio_media_alt</span>`
- `<span class="editor-theme-code">llx_infrasstudio_revision</span>`
- `<span class="editor-theme-code">llx_infrasstudio_product_translation</span>`

<p class="callout info">**Conseil —**<span style="white-space: pre-wrap;"> En cas de table manquante, désactivez puis réactivez le module dans </span>**Configuration → Modules.**<span style="white-space: pre-wrap;"> Le module recrée les tables absentes lors de la réactivation.</span></p>

##### **Section 3 — Stockage**

Cette section vérifie que les dossiers d'écriture sont accessibles à PHP :

- **DOL\_DATA\_ROOT**<span style="white-space: pre-wrap;"> : la racine des données Dolibarr.</span>
- **Dossier de données du module**<span style="white-space: pre-wrap;"> : créé au premier téléversement.</span>

<p class="callout warning">**Avertissement —**<span style="white-space: pre-wrap;"> Si un dossier n'est pas accessible en écriture, corrigez les permissions :</span>  
`<span class="editor-theme-code">chown -R www-data:www-data /var/www/dolibarr/htdocs/documents/</span>`</p>

##### **Section 4 — Intégration Dolibarr**

Cette section vérifie les hooks, le trigger et les tâches planifiées.

<table id="bkmrk-contr%C3%B4ledescriptionh" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col></col><col></col></colgroup><tbody><tr style="background: rgb(25, 5, 45); color: rgb(254, 252, 232);"><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Contrôle

</th><th class="align-left" style="padding: 0.6rem 1rem; text-align: left; border: 1px solid rgb(25, 5, 45);">Description

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Hooks**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Quatre hooks sont attendus : </span>

`<span class="editor-theme-code">main</span>`

<span style="white-space: pre-wrap;">, </span>

`<span class="editor-theme-code">login</span>`

<span style="white-space: pre-wrap;">, </span>

`<span class="editor-theme-code">websitepage</span>`

<span style="white-space: pre-wrap;">, </span>

`<span class="editor-theme-code">websitenav</span>`

.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Trigger PRODUCT et CATEGORY**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Le fichier </span>

`<span class="editor-theme-code">InterfaceInfrasstudiotrigger</span>`

<span style="white-space: pre-wrap;"> doit être présent sur le disque.</span>

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Tâches planifiées**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Au moins une tâche cron doit être déclarée pour le module.

</td></tr></tbody></table>

##### **Section 5 — Sites gérés**

Pour chaque site activé, cette section contrôle :

- <span style="white-space: pre-wrap;">la résolution du </span>**docroot**<span style="white-space: pre-wrap;"> (cascade : per-site → DOCROOT\_PATTERN → fallback) ;</span>
- <span style="white-space: pre-wrap;">le bon fonctionnement du </span>**mode média**<span style="white-space: pre-wrap;"> (présence du lien symbolique en mode native) ;</span>
- <span style="white-space: pre-wrap;">l'accessibilité en écriture du </span>**dossier data**<span style="white-space: pre-wrap;"> du site.</span>

**« Aucun docroot résolu » —**<span style="white-space: pre-wrap;"> Définissez la constante </span>`<span class="editor-theme-code">INFRASSTUDIO_SITE_<id>_DOCROOT</span>`<span style="white-space: pre-wrap;"> avec le chemin Apache absolu de ce site, ou utilisez le pattern </span>`<span class="editor-theme-code">INFRASSTUDIO_DOCROOT_PATTERN</span>`<span style="white-space: pre-wrap;"> (par exemple </span>`<span class="editor-theme-code">/var/www/{ref}</span>`).

##### **Section 6 — Catalogue produit dynamique (optionnel)**

<span style="white-space: pre-wrap;">Cette section n'apparaît que si vous avez configuré </span>`<span class="editor-theme-code">INFRASSTUDIO_WEBSITE_KEY</span>`<span style="white-space: pre-wrap;"> ou </span>`<span class="editor-theme-code">INFRASSTUDIO_PUBLIC_DOCROOT</span>`. Elle vérifie que ces deux constantes pointent vers des cibles valides.

#### <span style="color: rgb(35, 111, 161);">Lecture du résultat global</span>

**Tous les voyants au vert —**<span style="white-space: pre-wrap;"> Vous pouvez passer à la Partie III (utilisateur final) ou à la Partie IV (développeur), selon votre rôle.</span>

**Quelques avertissements oranges —**<span style="white-space: pre-wrap;"> Le module fonctionne. Examinez les avertissements à tête reposée et décidez s'il convient de corriger immédiatement ou plus tard.</span>

**Au moins un voyant rouge —**<span style="white-space: pre-wrap;"> Interrompez votre installation et corrigez l'anomalie. Une fonctionnalité importante est inopérante et son symptôme apparaîtra plus tard de manière inattendue.</span>

#### <span style="color: rgb(35, 111, 161);">Quand relancer le diagnostic</span>

- Après une installation initiale du module.
- Après chaque mise à jour.
- Après une migration de serveur ou un changement d'hébergement.
- Lorsqu'un comportement inattendu apparaît (slot non enregistré, médias absents, etc.).
- Avant la transmission du projet à un nouveau collègue ou à un client.

<p class="callout success">**Bonne pratique pour les équipes —**<span style="white-space: pre-wrap;"> Demandez à toute personne signalant un dysfonctionnement de joindre d'abord une capture d'écran de la page Diagnostic. La majorité des incidents trouvent leur explication dans une ligne orange ou rouge passée inaperçue.</span></p>