Applications

📚 GLPI Installation Debian 12 — Guide Complet

Guide complet d'installation de GLPI 10 (Gestion Libre de Parc Informatique) sur Debian 12 Bookworm. GLPI gère les tickets helpdesk, l'inventaire matériel/logiciel et le parc informatique.

GLPI 10Debian 12ApachePHP 8.2MariaDBHelpdeskInventaire

Prérequis

ComposantVersion recommandée
Système d'exploitationDebian 12 Bookworm (installation minimale)
RAMMinimum 2 Go — recommandé 4 Go
PHP8.2 (8.1 également supporté)
Base de donnéesMariaDB 10.6+ ou MySQL 8.0+
Serveur webApache 2.4 avec mod_rewrite
GLPI10.x — vérifier github.com/glpi-project/glpi

Étape 1 — Mise à jour et paquets de base

01-preparation.sh
# Mise à jour complète du système
apt update && apt upgrade -y
apt install -y curl wget git unzip apt-transport-https ca-certificates

Étape 2 — Apache + PHP 8.2 + Extensions GLPI

02-apache-php.sh
apt install -y apache2

# Toutes les extensions PHP requises par GLPI 10
apt install -y php8.2 php8.2-mysql php8.2-mbstring php8.2-curl \
  php8.2-gd php8.2-xml php8.2-zip php8.2-intl php8.2-bz2 \
  php8.2-ldap php8.2-imap php8.2-apcu php8.2-xmlrpc \
  libapache2-mod-php8.2

# Activer les modules Apache nécessaires
a2enmod rewrite headers ssl
systemctl enable --now apache2

# Vérification
php -v && apache2ctl -v

Étape 3 — Paramètres PHP optimisés pour GLPI

03-php-config.sh
PHP_INI=/etc/php/8.2/apache2/php.ini

sed -i 's/memory_limit = .*/memory_limit = 256M/' $PHP_INI
sed -i 's/upload_max_filesize = .*/upload_max_filesize = 20M/' $PHP_INI
sed -i 's/post_max_size = .*/post_max_size = 20M/' $PHP_INI
sed -i 's/max_execution_time = .*/max_execution_time = 600/' $PHP_INI
sed -i 's/session.cookie_httponly.*/session.cookie_httponly = On/' $PHP_INI
sed -i 's|;date.timezone.*|date.timezone = Europe/Paris|' $PHP_INI

systemctl restart apache2

Étape 4 — MariaDB : Créer la base GLPI

04-mariadb.sh
apt install -y mariadb-server mariadb-client
mysql_secure_installation

# Connexion en root pour créer la base
mysql -u root -p

# Dans le prompt MariaDB :
CREATE DATABASE glpi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'glpi_user'@'localhost' IDENTIFIED BY 'GlpiP@ssw0rd!';
GRANT ALL PRIVILEGES ON glpi.* TO 'glpi_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

# Optimisation MariaDB pour GLPI
cat >> /etc/mysql/mariadb.conf.d/50-server.cnf << EOF
[mysqld]
innodb_buffer_pool_size = 256M
innodb_file_per_table = ON
EOF

# Charger les fuseaux horaires (requis par GLPI)
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
systemctl restart mariadb

Étape 5 — Téléchargement et installation GLPI

05-glpi-install.sh
# Télécharger GLPI (vérifier la dernière version sur GitHub)
GLPI_VERSION=10.0.17
wget https://github.com/glpi-project/glpi/releases/download/${GLPI_VERSION}/glpi-${GLPI_VERSION}.tgz -O /tmp/glpi.tgz
tar -xzf /tmp/glpi.tgz -C /var/www/html/

# Bonne pratique GLPI 10 : déplacer données sensibles hors webroot
mkdir -p /var/lib/glpi/{files,log,config}
mkdir -p /var/log/glpi
mv /var/www/html/glpi/files /var/lib/glpi/
mv /var/www/html/glpi/config /var/lib/glpi/

# Fichier de redirection vers les nouveaux chemins
cat > /var/www/html/glpi/config/local_define.php << 'EOF'
<?php
define('GLPI_VAR_DIR',    '/var/lib/glpi/files');
define('GLPI_LOG_DIR',    '/var/log/glpi');
define('GLPI_CONFIG_DIR', '/var/lib/glpi/config');
EOF

# Permissions correctes
chown -R www-data:www-data /var/www/html/glpi /var/lib/glpi /var/log/glpi
chmod -R 755 /var/www/html/glpi
chmod -R 775 /var/lib/glpi /var/log/glpi

Étape 6 — VirtualHost Apache

/etc/apache2/sites-available/glpi.conf
<VirtualHost *:80>
    ServerName glpi.entreprise.local
    DocumentRoot /var/www/html/glpi/public

    <Directory /var/www/html/glpi/public>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted

        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ index.php [QSA,L]
    </Directory>

    ErrorLog  ${APACHE_LOG_DIR}/glpi_error.log
    CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined
</VirtualHost>
activation Apache
a2ensite glpi.conf
a2dissite 000-default.conf
apache2ctl configtest   # Vérifier la syntaxe
systemctl reload apache2

Étape 7 — Installation en ligne de commande

07-glpi-setup.sh
cd /var/www/html/glpi

php bin/console db:install \
  --db-host=localhost \
  --db-name=glpi \
  --db-user=glpi_user \
  --db-password='GlpiP@ssw0rd!' \
  --no-interaction

# OBLIGATOIRE : supprimer le dossier install après l'installation !
rm -rf /var/www/html/glpi/install/

# Cron GLPI — tâches automatiques toutes les 2 minutes
echo "*/2 * * * * www-data php /var/www/html/glpi/front/cron.php" > /etc/cron.d/glpi
⚠️
Sécurité critique : Supprimer obligatoirement le dossier /var/www/html/glpi/install/ après l'installation. Le laisser accessible permet à n'importe qui de réinitialiser GLPI.

Étape 8 — Première connexion & configuration

1
Accéder à GLPI
Ouvrir http://glpi.entreprise.local. Compte administrateur par défaut : glpi / glpi.
2
Changer les mots de passe par défaut
Administration → Utilisateurs. Modifier impérativement glpi, tech, normal, post-only. Ces comptes sont publiquement connus.
3
Configurer l'entité et la langue
Administration → Entités → Entité racine — définir pays, langue française, fuseau horaire Europe/Paris.
4
Configurer les notifications email
Configuration → Notifications → Suivis par courriels — renseigner le serveur SMTP pour les alertes de tickets.
5
Installer GLPI Agent (inventaire automatique)
Déployer glpi-agent sur les postes Windows et Linux. Il remonte automatiquement le matériel, les logiciels et les mises à jour manquantes.

Sécurisation post-installation

08-securisation.sh
# SSL Let's Encrypt (si accessible depuis internet)
apt install -y certbot python3-certbot-apache
certbot --apache -d glpi.exemple.com

# Ou certificat auto-signé pour usage interne
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout /etc/ssl/private/glpi.key \
  -out /etc/ssl/certs/glpi.crt \
  -subj "/CN=glpi.entreprise.local/O=MonEntreprise/C=FR"

# Firewall : n'autoriser que HTTP et HTTPS
ufw allow 80/tcp && ufw allow 443/tcp && ufw enable

# Sauvegarde automatique de la base GLPI
cat > /usr/local/bin/backup-glpi.sh << 'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M)
mysqldump -u glpi_user -p'GlpiP@ssw0rd!' glpi | gzip > /backup/glpi_${DATE}.sql.gz
find /backup -name "glpi_*.sql.gz" -mtime +30 -delete
EOF
chmod +x /usr/local/bin/backup-glpi.sh
echo "0 2 * * * root /usr/local/bin/backup-glpi.sh" > /etc/cron.d/glpi-backup
💡
Pour l'inventaire automatique des postes, installer GLPI Agent (successeur de FusionInventory) sur les clients Windows et Linux. Il remonte matériel, logiciels, mises à jour manquantes et déploiements directement dans GLPI.
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google