# Partie II — Démarrer

# 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>

# Chapitre 7 — Activer un site managé

Le module est installé mais ne gère encore aucun site. Cette étape consiste à lui indiquer quel site Dolibarr Website il doit prendre en charge. C'est cette opération qui établit la connexion entre le module et un site existant.

#### <span style="color: rgb(35, 111, 161);">Étape 1 — Disposer d'un site Website</span>

Avant de l'activer dans le module, le site doit déjà exister dans le module Website natif. Si ce n'est pas encore le cas :

1. Rendez-vous dans Accueil → Sites web (menu du module Website).
2. <span style="white-space: pre-wrap;">Cliquez sur </span>**« Nouveau site »**.
3. Renseignez les informations suivantes :
    - **Référence**<span style="white-space: pre-wrap;"> : un identifiant court sans espace, par exemple </span>`<span class="editor-theme-code">monsite</span>`.
    - **Description**<span style="white-space: pre-wrap;"> : optionnelle.</span>
    - **Virtualhost**<span style="white-space: pre-wrap;"> : l'URL publique, par exemple </span>`<span class="editor-theme-code">https://monsite.com</span>`.
    - **Langue principale**<span style="white-space: pre-wrap;"> : par exemple </span>`<span class="editor-theme-code">fr_FR</span>`.
    - **Autres langues**<span style="white-space: pre-wrap;"> : optionnel, séparées par des virgules.</span>
4. Enregistrez.

<p class="callout info">**Note —**<span style="white-space: pre-wrap;"> Le module détecte automatiquement les sites créés dans Website. Aucune configuration parallèle n'est nécessaire.</span></p>

#### <span style="color: rgb(35, 111, 161);">Étape 2 — Sélectionner le site dans la configuration</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'entrée </span>**Configuration**<span style="white-space: pre-wrap;"> dans le menu latéral du module.</span>
    - [x] La page Paramètres de configuration s'affiche.
3. <span style="white-space: pre-wrap;">Repérez la section </span>**« Sites Website gérés »**.
    - [x] Vous y voyez la liste de tous les sites Dolibarr Website disponibles, accompagnés d'une case à cocher.
4. Cochez le ou les sites que vous souhaitez éditer via InfraSStudio.
5. <span style="white-space: pre-wrap;">Cliquez sur </span>**« Enregistrer »**<span style="white-space: pre-wrap;"> en bas de la page.</span>

<p class="callout success">**Effet —**<span style="white-space: pre-wrap;"> Le site apparaît désormais sur le tableau de bord du Studio d'Infrasstudio. Vous pouvez commencer à l'éditer.</span></p>

#### <span style="color: rgb(35, 111, 161);">Étape 3 — Réglages spécifiques par site</span>

Pour chaque site coché, deux réglages complémentaires apparaissent.

##### **Le mode de stockage des médias**

Vous choisissez l'emplacement physique où les images téléversées seront enregistrées :

<table id="bkmrk-modequand-l%27utiliser" 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);">Mode

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

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

<span style="white-space: pre-wrap;"> — recommandé</span>

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Les fichiers sont servis directement par Apache via le lien symbolique </span>

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

<span style="white-space: pre-wrap;"> standard. Plus rapide, URL plus courte, accessible également depuis l'éditeur Dolibarr Website natif.</span>

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

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

`<span class="editor-theme-code">document.php?modulepart=infrasstudio</span>`

<span style="white-space: pre-wrap;">. Utile uniquement lorsque le serveur Apache n'a pas accès au dossier </span>

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

<span style="white-space: pre-wrap;"> du site.</span>

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

##### **La page d'index du blog**

Si votre site comporte une page « Blog » ou « Ressources » qui liste les articles publiés, vous pouvez la désigner ici.

<p class="callout info">**Conseil —**<span style="white-space: pre-wrap;"> Lorsque vous serez sur cette page dans l'éditeur, le bouton « + Nouveau » deviendra automatiquement « + Nouvel article ». C'est un raccourci ergonomique appréciable.</span></p>

Laissez ce paramètre sur « Aucune » si votre site ne dispose pas de blog.

#### <span style="color: rgb(35, 111, 161);">Étape 4 — Configuration du catalogue produit (optionnel)</span>

Cette section ne concerne que les sites disposant d'un catalogue produit dynamique, c'est-à-dire d'une page web générée automatiquement par produit Dolibarr publié.

Le cas échéant, configurez :

<table id="bkmrk-constantevaleurinfra" 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);">Constante

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

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">INFRASSTUDIO_WEBSITE_KEY</span>`

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">La référence du site cible (par exemple </span>

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

)

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">INFRASSTUDIO_PUBLIC_DOCROOT</span>`

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Le chemin Apache absolu du site (par exemple </span>

`<span class="editor-theme-code">/var/www/monsite</span>`

)

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

<span style="white-space: pre-wrap;">Le bouton </span>**« Reconstruire maintenant »**<span style="white-space: pre-wrap;"> permet de générer immédiatement les wrappers </span>`<span class="editor-theme-code">solution-<ref>.php</span>`<span style="white-space: pre-wrap;"> pour chaque produit publié.</span>

<p class="callout info">**Note —**<span style="white-space: pre-wrap;"> Si vous ne savez pas si vous avez besoin de cette fonctionnalité, ignorez cette section. Le Chapitre 23 explique le catalogue dynamique en détail.</span></p>

#### <span style="color: rgb(35, 111, 161);">Étape 5 — Réglages avancés</span>

En bas de la page Configuration, une section repliable « Réglages avancés » expose des constantes plus pointues. Pour une première installation, conservez les valeurs par défaut. Le Chapitre 25 documente chacun de ces paramètres.

#### <span style="color: rgb(35, 111, 161);">Liste de contrôle après activation</span>

**Votre site est correctement activé si :**

- Le tableau de bord Studio (***Outils → InfraSStudio***) affiche désormais une carte pour ce site.
- <span style="white-space: pre-wrap;">Le bouton « </span>**Éditer** » de cette carte ouvre l'éditeur en trois colonnes.
- La colonne de gauche liste bien les pages de votre site.
- Cliquer sur une page déclenche son aperçu au centre.

Au chapitre suivant, le diagnostic complet permet de valider l'intégration de bout en bout.

# Chapitre 6 — Installation du module

Trois méthodes d'installation sont possibles. Choisissez celle qui correspond à votre environnement de travail. Les trois aboutissent au même résultat.

#### <span style="color: rgb(53, 152, 219);">Méthode 1 — Via l'interface Dolibarr (recommandée)</span>

<span style="white-space: pre-wrap;">C'est la méthode la plus simple. Elle ne nécessite pas d'accès SSH et fonctionne dès lors que la constante </span>`<span class="editor-theme-code">MAIN_DISALLOW_INSTALL_EXTERNAL_MODULES</span>`<span style="white-space: pre-wrap;"> n'est pas activée sur votre instance.</span>

##### **Procédure**

1. Connectez-vous à Dolibarr en tant qu'administrateur.
2. Rendez-vous dans Accueil → Configuration → Modules.
3. <span style="white-space: pre-wrap;">Cliquez sur le bouton </span>**« Déployer / installer un module externe »**<span style="white-space: pre-wrap;"> en haut de la page.</span>
4. <span style="white-space: pre-wrap;">Cliquez sur </span>**« Choisir un fichier »**<span style="white-space: pre-wrap;"> et sélectionnez l'archive </span>`<span class="editor-theme-code">module_infrasstudio-X.Y.Z.zip</span>`.
5. <span style="white-space: pre-wrap;">Cliquez sur </span>**« Envoyer le fichier »**.
6. Patientez quelques secondes pendant la décompression de l'archive.
7. Un message confirme la réussite de l'installation et vous invite à activer le module.

<p class="callout info">**Conseil —**<span style="white-space: pre-wrap;"> L'archive doit être nommée </span>`<span class="editor-theme-code">module_infrasstudio-X.Y.Z.zip</span>`<span style="white-space: pre-wrap;">, où </span>`<span class="editor-theme-code">X.Y.Z</span>`<span style="white-space: pre-wrap;"> correspond au numéro de version. Ce nom est utilisé par Dolibarr pour identifier le module.</span></p>

#### <span style="color: rgb(53, 152, 219);">Méthode 2 — Manuelle (SSH ou FTP)</span>

Cette méthode est adaptée si vous disposez d'un accès au serveur ou si vous travaillez dans un environnement local.

##### **Procédure**

1. <span style="white-space: pre-wrap;">Décompressez l'archive </span>`<span class="editor-theme-code">module_infrasstudio-X.Y.Z.zip</span>`<span style="white-space: pre-wrap;"> sur votre poste de travail.</span>
2. <span style="white-space: pre-wrap;">Vous obtenez un dossier nommé </span>`<span class="editor-theme-code">infrasstudio/</span>`.
3. <span style="white-space: pre-wrap;">Copiez ce dossier dans </span>`<span class="editor-theme-code"><votre_dolibarr>/htdocs/custom/</span>`<span style="white-space: pre-wrap;"> sur votre serveur, par SCP ou FTP.</span>
4. <span style="white-space: pre-wrap;">Vérifiez les permissions : le dossier doit être accessible en lecture par l'utilisateur sous lequel tourne PHP, généralement </span>`<span class="editor-theme-code">www-data</span>`.

```
# Exemple complet en SSH
cd /var/www/dolibarr/htdocs/custom/
unzip /tmp/module_infrasstudio-1.9.0.zip
chown -R www-data:www-data infrasstudio/
```

#### <span style="color: rgb(53, 152, 219);">Méthode 3 — Via Git (pour les développeurs)</span>

Cette méthode est appropriée si vous souhaitez suivre les évolutions du module au fil des versions.

```
cd /var/www/dolibarr/htdocs/custom/
git clone https://github.com/infras/infrasstudio.git
cd infrasstudio
git checkout v1.9.0   # ou la version souhaitée
```

<p class="callout warning">**Avertissement —**<span style="white-space: pre-wrap;"> En production, ne pointez jamais sur la branche </span>`<span class="editor-theme-code">main</span>`. Utilisez toujours un tag de version stable.</p>

#### <span style="color: rgb(53, 152, 219);">Activer le module dans Dolibarr</span>

Une fois le dossier en place, l'activation s'effectue depuis l'interface :

1. <span style="white-space: pre-wrap;">Rendez-vous dans </span>***Accueil → Configuration → Modules.***
2. <span style="white-space: pre-wrap;">Recherchez « </span>**InfraSStudio** » dans le filtre.
    - [x] <span style="white-space: pre-wrap;">La carte du module apparaît : « </span>**InfraSStudio** — surcouche d'édition Website ».
3. Cliquez sur l'interrupteur d'activation à droite de la carte.
4. Patientez. Dolibarr exécute alors plusieurs opérations en tâche de fond :
    - création des cinq tables SQL,
    - enregistrement des sept permissions,
    - installation des hooks (`<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>`),
    - déclaration des tâches planifiées,
    - restauration des constantes éventuellement sauvegardées lors d'une désactivation antérieure.
    
    
    - [x] L'interrupteur passe au vert : le module est activé.

<p class="callout info">**Vérification rapide —**<span style="white-space: pre-wrap;"> Survolez le menu Outils en haut de Dolibarr. Une nouvelle entrée doit apparaître : InfraS → InfraSStudio.</span></p>

#### <span style="color: rgb(53, 152, 219);">En cas d'échec de l'activation</span>

Voici les erreurs les plus fréquentes et leurs solutions :

<table id="bkmrk-message-d%27erreurcaus" 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);">Message d'erreur

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

</th></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">« Module Website non activé »

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

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

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Mettez Dolibarr à jour vers une version supportée. En dernier recours, définissez la constante </span>

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

.

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">« Erreur SQL CREATE TABLE »

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">L'utilisateur SQL ne dispose pas du droit </span>

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

<span style="white-space: pre-wrap;">. Accordez-le, ou créez les tables manuellement à partir des fichiers </span>

`<span class="editor-theme-code">sql/llx_infrasstudio_*.sql</span>`

.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">« Permission denied » sur le système de fichiers

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

`<span class="editor-theme-code">chown -R www-data:www-data htdocs/custom/infrasstudio/</span>`

<span style="white-space: pre-wrap;"> côté serveur.</span>

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Page blanche après activation

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

`<span class="editor-theme-code">htdocs/documents/dolibarr.log</span>`

. La cause est presque toujours une extension PHP manquante.

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

### <span style="color: rgb(53, 152, 219);">Vérification après installation</span>

**Le module est correctement installé si :**

- <span style="white-space: pre-wrap;">L'entrée </span>***InfraS → InfraSStudio***<span style="white-space: pre-wrap;"> apparaît dans le menu Outils.</span>
- La carte du module dans Configuration → Modules est verte.
- <span style="white-space: pre-wrap;">Aucune erreur n'est consignée dans </span>`<span class="editor-theme-code">htdocs/documents/dolibarr.log</span>`.
- <span style="white-space: pre-wrap;">La page </span>***Configuration → InfraSStudio → Diagnostic est accessible***.

Au chapitre suivant, vous configurerez votre premier site géré par le module.

# Chapitre 5 — Prérequis et compatibilité

<span style="white-space: pre-wrap;">Avant l'installation du module, il convient de vérifier que votre environnement répond aux conditions techniques requises. Cette page liste l'ensemble des prérequis. </span>**Aucun n'est facultatif**.

#### <span style="color: rgb(35, 111, 161);">Côté Dolibarr</span>

<table id="bkmrk-%C3%89l%C3%A9mentexigenceversi" 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);">Élément

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

</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);">18.0.0 minimum, 24.x.x maximum

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

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Activé. Cette dépendance est obligatoire ; sans elle, l'installation du module échoue.

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Au moins un site Website**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Créé avec une référence et un virtualhost

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

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Recommandé. Utile pour la catégorisation des contenus.

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

<p class="callout info">**Conseil —**<span style="white-space: pre-wrap;"> La version de votre Dolibarr est consultable depuis Accueil → À propos. La liste des modules activés est disponible dans Configuration → Modules.</span></p>

#### <span style="color: rgb(35, 111, 161);">Côté serveur (PHP et système)</span>

<table id="bkmrk-%C3%89l%C3%A9mentexigenceversi-1" 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);">Élément

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

</th></tr><tr><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);">7.4 minimum, 8.4 maximum

</td></tr><tr style="background: rgb(250, 245, 255);"><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 class="editor-theme-code">mbstring</span>`

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

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

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

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

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

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

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

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

</td></tr><tr><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Base de données**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">MySQL 5.7 ou supérieur, ou MariaDB 10.3 ou supérieur

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

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Apache (recommandé) ; nginx pris en charge avec une configuration dédiée

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

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">Environ 50 Mo pour le module, en plus de l'espace nécessaire à vos médias

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);">**Permissions du système de fichiers**

</td><td style="padding: 0.6rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">PHP doit pouvoir écrire dans </span>

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

<span style="white-space: pre-wrap;"> ainsi que dans le docroot des sites</span>

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

<p class="callout info">**Note —**<span style="white-space: pre-wrap;"> Tous ces prérequis sont contrôlés automatiquement par la page Diagnostic du module après installation. En cas de doute, procédez à l'installation et laissez le diagnostic identifier les manquements éventuels.</span></p>

#### <span style="color: rgb(35, 111, 161);">Vérification rapide en ligne de commande</span>

Si vous disposez d'un accès SSH au serveur, les commandes suivantes vous permettent de contrôler l'environnement en quelques instants :

```
# Version PHP
php -v

# Extensions PHP installées
php -m | grep -iE "mbstring|json|pdo_mysql|gd|fileinfo"

# Version de Dolibarr
grep "version =" /var/www/dolibarr/htdocs/filefunc.inc.php

# Espace disque disponible
df -h /var/www/
```

#### <span style="color: rgb(35, 111, 161);">Liste de contrôle avant installation</span>

**Avant de passer au chapitre suivant, assurez-vous des points suivants :**

- Votre installation Dolibarr est en version 18.x à 24.x.
- Le module Website est activé.
- Au moins un site Website est créé, avec une référence et un virtualhost configurés.
- Vous disposez des droits d'administrateur sur Dolibarr.
- <span style="white-space: pre-wrap;">Vous avez à votre disposition l'archive du module ou un accès au répertoire </span>`<span class="editor-theme-code">htdocs/custom/</span>`.

<p class="callout warning">**Avertissement —**<span style="white-space: pre-wrap;"> Sur une instance de production, il est impératif d'effectuer une sauvegarde complète (base de données et fichiers) avant l'installation. C'est l'occasion idéale de tester votre procédure de restauration.</span></p>