Déploiement de GLPI & WordPress

Guide complet étape par étape pour mettre en place une infrastructure 3 Tiers avec serveur Web et Base de données séparés.

🏗️

Partie 0 : Préparation des VMs

Réseau : Les deux machines doivent être sur le même segment (ex: NAT ou Réseau Interne).

Tier 3

VM-BDD

  • OS : Debian / Ubuntu
  • IP : 192.168.17.10
  • Nom : srv-bdd
Tier 2

VM-WEB

  • OS : Debian / Ubuntu
  • IP : 192.168.17.20
  • Nom : srv-web
🖥️

Partie 1 : Serveur de Base de Données (VM-BDD)

1 Installation et Ouverture Réseau

Bash
sudo apt update && sudo apt install mariadb-server -y

# Modification du fichier pour autoriser les connexions distantes
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# Remplace : bind-address = 127.0.0.1
# Par : bind-address = 0.0.0.0

sudo systemctl restart mariadb

2 Création des Bases et Utilisateurs

Note : On utilise sudo mariadb car le root SQL utilise le socket système.

SQL
sudo mariadb

-- Configuration pour GLPI
CREATE DATABASE db_glpi;
GRANT ALL PRIVILEGES ON db_glpi.* TO 'user_glpi'@'192.168.17.20' IDENTIFIED BY 'TonMotDePasse';

-- Configuration pour WordPress
CREATE DATABASE db_wordpress;
GRANT ALL PRIVILEGES ON db_wordpress.* TO 'user_wp'@'192.168.17.20' IDENTIFIED BY 'AutreMotDePasse';

FLUSH PRIVILEGES;
EXIT;

3 Sécurisation (Pare-feu)

Bash
sudo apt install ufw -y
sudo ufw allow 22/tcp
# On autorise QUE la VM-WEB à contacter la BDD sur le port 3306
sudo ufw allow from 192.168.17.20 to any port 3306
sudo ufw enable
🌐

Partie 2 : Serveur Web (VM-WEB)

1 Installation d'Apache et PHP 8.3

Bash
sudo apt update
sudo apt install apache2 php8.3 libapache2-mod-php8.3 php8.3-mysql php8.3-gd php8.3-mbstring php8.3-intl php8.3-xml php8.3-curl php8.3-bz2 php8.3-zip -y

2 Préparation des Répertoires et Fichiers

Bash
# Pour GLPI
cd /tmp && wget https://github.com/glpi-project/glpi/releases/download/10.0.12/glpi-10.0.12.tgz
sudo tar -xvzf glpi-10.0.12.tgz -C /var/www/
sudo mv /var/www/glpi /var/www/glpi_app

# Pour WordPress
cd /tmp && wget https://wordpress.org/latest.tar.gz
sudo tar -xvzf latest.tar.gz -C /var/www/
sudo mv /var/www/wordpress /var/www/vitrine_app

# Gestion des droits (Crucial pour l'installation)
sudo chown -R www-data:www-data /var/www/
sudo chmod -R 755 /var/www/

3 Configuration des VirtualHosts (L'Aiguillage)

Fichier GLPI :
sudo nano /etc/apache2/sites-available/glpi.conf

Apache
<VirtualHost *:80>
    ServerName glpi.meridian.local
    DocumentRoot /var/www/glpi_app
    <Directory /var/www/glpi_app>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Fichier WordPress :
sudo nano /etc/apache2/sites-available/vitrine.conf

Apache
<VirtualHost *:80>
    ServerName vitrine.meridian.local
    DocumentRoot /var/www/vitrine_app
    <Directory /var/www/vitrine_app>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

4 Activation et Redémarrage

Bash
sudo a2ensite glpi.conf vitrine.conf
sudo a2dissite 000-default.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
💻

Partie 3 : Configuration du Client

Tu dois dire à ton propre ordinateur où trouver ces noms de domaine pour qu'il ne cherche pas sur internet mais sur ta VM.

Windows

Ouvre le bloc-notes en tant qu'administrateur et modifie le fichier :

C:\Windows\System32\drivers\etc\hosts

Linux / Mac

Ouvre un terminal et tape la commande :

sudo nano /etc/hosts

Ajoute ces deux lignes à la fin du fichier :

Plaintext
192.168.17.20    glpi.meridian.local
192.168.17.20    vitrine.meridian.local
🚀

Partie 4 : Déploiement des Interfaces

1. Installation GLPI

Va sur ton navigateur web (sur ton PC client) à cette adresse :

http://glpi.meridian.local/install/install.php
  • Suis l'assistant d'installation.
  • Serveur SQL : 192.168.17.10
  • Utilisateur : user_glpi + mot de passe.

Une fois fini, sécurise le serveur :

sudo rm -rf /var/www/glpi_app/install

2. Installation WordPress

Va sur ton navigateur web (sur ton PC client) à cette adresse :

http://vitrine.meridian.local
  • Suis l'assistant d'installation de WordPress.
  • Serveur SQL : 192.168.17.10
  • Utilisateur : user_wp + mot de passe.