> For the complete documentation index, see [llms.txt](https://documentation.efalia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.efalia.com/documentations/multigest/installation/infrastructure-serveur.md).

# Infrastructure serveur

Cette page couvre l'installation et la configuration de l'infrastructure serveur de Multigest : Apache/PHP, base de données MariaDB/MySQL, et OnlyOffice.

***

## Installation Apache & PHP

Apache et PHP constituent la couche serveur web de Multigest. Efalia fournit un package d'installation regroupant les versions compatibles.

### Installation du Package

{% stepper %}
{% step %}

### Préparer l'environnement

Si une installation Apache précédente existe :

1. Arrêtez le service Apache en cours
2. Sauvegardez le répertoire d'installation existant (renommez-le avec la date)
   {% endstep %}

{% step %}

### Exécuter l'installeur

Lancez l'exécutable fourni par Efalia **en tant qu'administrateur**.

Lors de l'installation, acceptez l'installation des packages **Visual C++ Redistributable** suivants lorsqu'ils sont proposés :

* Visual Studio 2010
* Visual Studio 2012
* Visual Studio 2013
* Visual Studio 2019

{% hint style="warning" %}
Ces packages sont nécessaires pour le bon fonctionnement du framework Multigest. Ne les ignorez pas.
{% endhint %}
{% endstep %}

{% step %}

### Configurer le serveur de messagerie SMTP

Modifiez le fichier `php.ini` pour renseigner l'adresse du serveur SMTP utilisé par Multigest pour l'envoi de notifications :

```ini
[mail function]
SMTP = smtp.votre-domaine.fr
smtp_port = 25
```

{% endstep %}

{% step %}

### Mettre à jour la variable PATH système

Ajoutez le répertoire PHP à la variable d'environnement système `PATH` pour que PHP soit accessible en ligne de commande.
{% endstep %}
{% endstepper %}

### Configuration HTTPS

Deux options sont disponibles pour sécuriser l'accès en HTTPS :

{% tabs %}
{% tab title="Certificat auto-signé" %}
Générez un certificat auto-signé pour un usage interne (réseau d'entreprise) :

1. Utilisez l'outil `openssl` inclus avec Apache
2. Générez la clé privée et le certificat
3. Renseignez les chemins dans `httpd-certificats.conf`

{% hint style="info" %}
Les navigateurs afficheront un avertissement de sécurité avec un certificat auto-signé. Acceptable en réseau interne, déconseillé pour un accès externe.
{% endhint %}
{% endtab %}

{% tab title="Certificat d" %}
Pour un accès externe ou une politique de sécurité stricte, utilisez un certificat émis par une autorité de certification (Let's Encrypt, DigiCert, etc.) :

1. Obtenez le certificat et la clé privée auprès de votre autorité
2. Renseignez les chemins dans `httpd-certificats.conf`
3. Décommentez la configuration des hôtes virtuels SSL dans `httpd-config-general.conf`
   {% endtab %}
   {% endtabs %}

### Fichiers de Configuration Apache Principaux

| Fichier                     | Rôle                                   |
| --------------------------- | -------------------------------------- |
| `httpd.conf`                | Configuration générale Apache          |
| `httpd-php.conf`            | Intégration PHP dans Apache            |
| `httpd-virtualhosts.conf`   | Hôtes virtuels (HTTP)                  |
| `httpd-certificats.conf`    | Chemins des certificats SSL            |
| `httpd-config-general.conf` | Paramètres généraux (activation HTTPS) |

***

## Mise à Jour Apache & PHP

Cette section décrit la procédure pour mettre à jour Apache et PHP vers une nouvelle version fournie par Efalia, sans réinstaller Multigest.

### Prérequis

* Nouveau package Apache/PHP fourni par Efalia
* Sauvegarde de la configuration Apache actuelle
* Accès administrateur au serveur

### Procédure

{% stepper %}
{% step %}

### Sauvegarder la configuration actuelle

Avant toute manipulation, sauvegardez le répertoire Apache actuel en le renommant avec la date :

```
Apache24\  →  Apache24_20260101\
```

Notez les personnalisations existantes :

* Configuration SMTP dans `php.ini`
* Chemins de certificats SSL dans `httpd-certificats.conf`
* Hôtes virtuels personnalisés dans `httpd-virtualhosts.conf`
  {% endstep %}

{% step %}

### Arrêter le service Apache

Depuis les **Services Windows** (services.msc), arrêtez le service **Apache2.4**.
{% endstep %}

{% step %}

### Appliquer le nouveau package

Exécutez l'installeur du nouveau package Apache/PHP fourni par Efalia **en tant qu'administrateur**.

Installez les **packages Visual C++ Redistributable** lorsqu'ils sont proposés (2010, 2012, 2013, 2019).
{% endstep %}

{% step %}

### Reporter la configuration personnalisée

Après installation, reportez les personnalisations depuis la sauvegarde vers le nouveau répertoire :

| Fichier                     | Paramètre à vérifier                   |
| --------------------------- | -------------------------------------- |
| `php.ini`                   | `SMTP =` (serveur de messagerie)       |
| `httpd-certificats.conf`    | Chemins des certificats SSL            |
| `httpd-config-general.conf` | Activation HTTPS (lignes décommentées) |
| `httpd-virtualhosts.conf`   | Hôtes virtuels personnalisés           |
| {% endstep %}               |                                        |

{% step %}

### Mettre à jour la variable PATH

Vérifiez que la variable d'environnement système `PATH` pointe vers le nouveau répertoire PHP.
{% endstep %}

{% step %}

### Démarrer et vérifier

Démarrez le service Apache et accédez à Multigest depuis un navigateur pour valider le bon fonctionnement.

En cas d'erreur au démarrage d'Apache, consultez les logs dans `Apache24\logs\error.log`.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Après une mise à jour Apache/PHP, vérifiez que les extensions PHP requises par Multigest sont bien activées dans `php.ini` : `mysqli`, `pdo_mysql`, et toute extension spécifique au module portail de publication (`gettext`, `intl`).
{% endhint %}

***

## Installation de la Base de Données

Multigest utilise **MariaDB** (recommandé) ou MySQL comme système de gestion de base de données.

### Bases de Données Multigest

| Base         | Rôle                                                    |
| ------------ | ------------------------------------------------------- |
| `mtgweb`     | Données GED — dossiers, index, documents, habilitations |
| `mgworkflow` | Données workflow — circuits, instances, historique      |

### Installation de MariaDB

{% stepper %}
{% step %}

### Télécharger MariaDB

Téléchargez **MariaDB 10.6** (minimum 10.5) depuis [mariadb.org](https://mariadb.org).
{% endstep %}

{% step %}

### Installer

Lancez l'installeur et configurez :

| Paramètre                     | Valeur recommandée                           |
| ----------------------------- | -------------------------------------------- |
| **Répertoire d'installation** | Ex. : `C:\MariaDB\`                          |
| **Répertoire des données**    | Ex. : `C:\MariaDB\data\`                     |
| **Mot de passe root**         | Mot de passe fort — à conserver              |
| **Accès distant**             | Activez si la base est sur un serveur séparé |
| {% endstep %}                 |                                              |

{% step %}

### Configurer my.ini

Optimisez les performances en ajustant `my.ini` :

```ini
[mysqld]
port        = 3306
character-set-server = latin1
max_connections = 200

# InnoDB — adapter la mémoire tampon à 60-70% de la RAM disponible
innodb_buffer_pool_size = 4G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2

# Timeouts
wait_timeout = 28800
interactive_timeout = 28800
```

{% hint style="info" %}
Adaptez `innodb_buffer_pool_size` à votre serveur : pour 8 Go de RAM, configurez 4–5 Go ; pour 16 Go, configurez 10–12 Go.
{% endhint %}
{% endstep %}

{% step %}

### Créer les bases de données

Depuis le client MySQL en ligne de commande :

```sql
CREATE DATABASE mtgweb CHARACTER SET latin1 COLLATE latin1_swedish_ci;
CREATE DATABASE mgworkflow CHARACTER SET latin1 COLLATE latin1_swedish_ci;
```

{% endstep %}

{% step %}

### Convertir les tables en InnoDB

Après l'installation initiale de Multigest, exécutez `configurator.exe` pour convertir les tables MyISAM en InnoDB et vérifier l'intégrité de la base.
{% endstep %}
{% endstepper %}

### Sauvegarde de la Base de Données

Utilisez `mysqldump` depuis l'invite de commande Windows (évitez les clients graphiques pour les grandes bases — risque de timeout) :

```bat
mysqldump -u root -p^
  --default-character-set=latin1^
  --max_allowed_packet=104857600^
  --extended-insert^
  --lock-tables^
  --single-transaction^
  mtgweb > C:\backup\mtgweb_AAAAMMJJ.sql
```

Répétez pour `mgworkflow`.

{% hint style="warning" %}
Planifiez les sauvegardes en dehors des heures de production. Conservez les sauvegardes sur un emplacement externe au serveur de base de données.
{% endhint %}

### Restauration de la Base de Données

```bat
mysql -u root -p mtgweb < C:\backup\mtgweb_AAAAMMJJ.sql
mysql -u root -p mgworkflow < C:\backup\mgworkflow_AAAAMMJJ.sql
```

### Migration MySQL vers MariaDB

Si vous migrez depuis MySQL vers MariaDB :

1. Vérifiez que les tables utilisent le moteur **InnoDB** (pas MyISAM)
2. Sauvegardez les bases `mtgweb` et `mgworkflow`
3. Installez MariaDB sur le nouveau serveur
4. Restaurez les sauvegardes
5. Exécutez `configurator.exe` pour vérifier l'intégrité

***

## Installation d'OnlyOffice

OnlyOffice est une suite bureautique en ligne intégrée à Multigest, permettant l'édition collaborative de documents Word, Excel et PowerPoint directement dans le navigateur.

### Configuration Requise

| Composant                  | Minimum requis                           |
| -------------------------- | ---------------------------------------- |
| **Système d'exploitation** | Windows Server 2016 64 bits ou supérieur |
| **Processeur**             | 2 cœurs à 2 GHz                          |
| **RAM**                    | 8 Go minimum                             |
| **Espace disque**          | 40 Go libres minimum                     |

### Dépendances (installées par le script)

| Composant               | Version |
| ----------------------- | ------- |
| Erlang OTP              | 28.1    |
| RabbitMQ                | 4.1.4   |
| Redis                   | 8.2.2   |
| PostgreSQL              | 18      |
| Python                  | 3.14.0  |
| FireDaemon OpenSSL      | 3.6.0   |
| Certbot                 | 1.4.0   |
| Visual C++ 2013 64 bits | —       |

### Installation

{% stepper %}
{% step %}

### Lancer le script d'installation

Exécutez `Install_all.bat` **en tant qu'administrateur**.

À la première question, répondez **Oui** (nouvelle installation).
{% endstep %}

{% step %}

### Définir le répertoire d'installation

Spécifiez le chemin d'installation :

```
[INSTALLDIR_MULTIGEST]\ONLYOFFICE
```

{% endstep %}

{% step %}

### Installer les dépendances

Le script guide l'installation séquentielle de chaque composant :

| Composant                   | Chemin d'installation                        | Note                                                              |
| --------------------------- | -------------------------------------------- | ----------------------------------------------------------------- |
| **Erlang OTP**              | `[INSTALLDIR]\ONLYOFFICE\Erlang OTP`         | —                                                                 |
| **RabbitMQ**                | `[INSTALLDIR]\ONLYOFFICE\RabbitMQ Server`    | Cocher "Start RabbitMQ service"                                   |
| **Python**                  | Chemin proposé par défaut                    | Cocher "Use admin privileges" et "Add python.exe to PATH"         |
| **Redis**                   | Automatique                                  | —                                                                 |
| **FireDaemon OpenSSL**      | Chemin proposé                               | Cocher "Adjust PATH system environment"                           |
| **Certbot**                 | Chemin proposé                               | —                                                                 |
| **PostgreSQL 18**           | `[INSTALLDIR]\ONLYOFFICE\PostgreSQL\18\data` | Décocher "Stack Builder" — mot de passe suggéré : `!R00tPGreSQL!` |
| **Visual C++ 2013 64 bits** | —                                            | —                                                                 |
| {% endstep %}               |                                              |                                                                   |

{% step %}

### Installer OnlyOffice DocumentServer

1. Cliquez sur **Suivant**
2. Modifiez le répertoire d'installation : `[INSTALLDIR]\ONLYOFFICE\DocumentServer\`
3. **Décochez** "Download prerequisites"
4. Cliquez sur **Installer**
5. Si une fenêtre d'avertissement s'affiche, cliquez sur **Ignorer**
6. Terminez l'installation et appuyez sur **Entrée**
   {% endstep %}

{% step %}

### Installer la licence Enterprise Edition

Copiez le fichier `license.lic` fourni par Efalia vers :

```
%ALLUSERSPROFILE%\ONLYOFFICE\Data\license.lic
```

{% endstep %}

{% step %}

### Configurer Multigest

Ajoutez la section suivante dans `[INSTALLDIR]\Multigest\bin\webserveur.ini` :

```ini
[MGMULTIVIEWER]
ONLY_OFFICE_PROXY_REDIRECT=officeviewer
```

{% endstep %}

{% step %}

### Vérifier l'installation

Depuis un poste client, accédez à :

```
http://[serveur_onlyoffice]:8085/welcome
```

La page d'accueil OnlyOffice doit s'afficher.
{% endstep %}
{% endstepper %}

### Installation OnlyOffice Version 9

La procédure est identique à celle décrite ci-dessus. Les versions de dépendances pour OnlyOffice 9 sont les suivantes :

| Composant              | Version requise |
| ---------------------- | --------------- |
| **Erlang OTP**         | 28.1            |
| **RabbitMQ**           | 4.1.4           |
| **Redis**              | 8.2.2           |
| **PostgreSQL**         | 18              |
| **Python**             | 3.14.0          |
| **Certbot**            | 1.4.0           |
| **FireDaemon OpenSSL** | 3.6.0           |

**Points d'attention lors d'une mise à jour depuis une version antérieure :**

{% hint style="warning" %}
Avant de mettre à jour OnlyOffice, vérifiez la compatibilité de version avec Multigest. Une incompatibilité de version peut empêcher l'édition de documents.
{% endhint %}

1. Sauvegardez la configuration OnlyOffice actuelle
2. Désinstallez les composants dans l'ordre : Erlang, RabbitMQ, PostgreSQL, Redis (et Python/NodeJS si présents)
3. Réinstallez avec les nouvelles versions via `Install_all.bat`
4. Vérifiez que le fichier `license.lic` est toujours en place
5. Lors d'un patch Multigest, vérifiez que la version d'OnlyOffice reste compatible (voir [Notes de version](/documentations/multigest/annexes/notes-version.md))

### Désinstallation d'OnlyOffice

Pour désinstaller OnlyOffice, supprimez les composants suivants via **Panneau de configuration → Programmes** :

**Obligatoires :** Erlang, RabbitMQ, PostgreSQL, Redis\
**Si présents :** Python, NodeJS, FireDaemon OpenSSL, Certbot

***

**Pour aller plus loin :**

* [Installation de l'application](/documentations/multigest/installation/installation-application.md)
* [Déploiement client](/documentations/multigest/installation/deploiement-client.md)
* [Migration et mise à jour](/documentations/multigest/installation/migration-mise-a-jour.md)
* [Fichiers de configuration](/documentations/multigest/installation/integrations-connecteurs.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.efalia.com/documentations/multigest/installation/infrastructure-serveur.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
