Services Linux 2026-03-25

Migration de GLPI 10 vers GLPI 11.0.6 sur Debian 13

Procédure technique de mise à jour corrective : gestion du dossier /public et résolution des erreurs 404

1. Informations Générales

  • IP Serveur : 10.192.194.101
  • URL d'accès : http://support.mpr-if.infra/
  • Version Source : 10.0.x
  • Version Cible : 11.0.6
  • Environnement : Apache 2.4 / PHP 8.2+

1.1 Prérequis

  • Accès SSH avec privilèges root.
  • Extension PHP php-bz2 installée (requise pour l'extraction).
  • Sauvegarde fonctionnelle de la base de données.

2. Sommaire

  1. Mise en maintenance et Sauvegardes
  2. Déploiement des sources de la version 11
  3. Migration des données persistantes (Config & Files)
  4. Configuration du nouveau routage Apache (/public)
  5. Correction du problème de fichier .htaccess (Erreur 404)
  6. Mise à jour de la base de données via CLI
  7. Finalisation et nettoyage

3. Mise en maintenance et Sauvegardes

Avant toute modification, on bloque l'accès aux utilisateurs pour garantir l'intégrité des données.

# Activation du mode maintenance
cd /var/www/support.mpr-if.infra
php bin/console glpi:maintenance:enable

# Sauvegarde SQL pré-migration
mysqldump -u root -p glpi_db > /root/backup_glpi_v10_pre_migration.sql

# Backup du répertoire complet
cp -r /var/www/support.mpr-if.infra /var/www/support.mpr-if.infra_old

4. Déploiement de GLPI 11

4.1 Téléchargement et extraction

cd /var/www/
wget [https://github.com/glpi-project/glpi/releases/download/11.0.6/glpi-11.0.6.tgz](https://github.com/glpi-project/glpi/releases/download/11.0.6/glpi-11.0.6.tgz)
tar -xvzf glpi-11.0.6.tgz
# Le dossier extrait se nomme 'glpi'

4.2 Transfert des données existantes

On réinjecte les paramètres de connexion et les documents stockés.

# Nettoyage des dossiers par défaut de la v11
rm -rf /var/www/glpi/config /var/www/glpi/files

# Migration des dossiers de l'ancienne version (-p pour conserver les droits)
cp -pr /var/www/support.mpr-if.infra_old/config /var/www/glpi/
cp -pr /var/www/support.mpr-if.infra_old/files /var/www/glpi/

# Remplacement du répertoire de production
rm -rf /var/www/support.mpr-if.infra
mv /var/www/glpi /var/www/support.mpr-if.infra
chown -R www-data:www-data /var/www/support.mpr-if.infra

5. Configuration du serveur Web (Routage /public)

Problématique : GLPI 11 modifie sa structure de sécurité. Le point d'entrée n'est plus la racine du dossier mais le sous-répertoire /public.

5.1 Modification du VirtualHost

Éditer /etc/apache2/sites-available/support.mpr-if.infra.conf :

<VirtualHost *:80>
    ServerName support.mpr-if.infra
    ServerAlias 10.192.194.101

    # Modification indispensable vers /public
    DocumentRoot /var/www/support.mpr-if.infra/public

    <Directory /var/www/support.mpr-if.infra/public>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/support_error.log
    CustomLog ${APACHE_LOG_DIR}/support_access.log combined
</VirtualHost>

5.2 Résolution de l'Erreur 404 (.htaccess)

Si l'accès renvoie une erreur 404 malgré le bon chemin, c'est que le fichier caché .htaccess manque dans le dossier /public.

# Vérifier et restaurer le fichier caché si nécessaire
tar -xvzf /var/www/glpi-11.0.6.tgz glpi/public/.htaccess
mv glpi/public/.htaccess /var/www/support.mpr-if.infra/public/
rm -rf glpi/

# Activation des modules et redémarrage
a2enmod rewrite
systemctl restart apache2

6. Mise à jour de la base de données

On utilise la console PHP pour transformer le schéma de base de données sans subir les limitations de timeout du navigateur.

cd /var/www/support.mpr-if.infra
php bin/console db:update
# Taper 'y' pour confirmer la mise à jour

7. Finalisation et Sécurisation

Une fois la mise à jour terminée, on nettoie l'installation pour la remettre en production.

# Nettoyage du cache applicatif
php bin/console cache:clear

# Désactivation du mode maintenance
php bin/console glpi:maintenance:disable

# Suppression du répertoire d'installation (Faille de sécurité)
rm -rf /var/www/support.mpr-if.infra/install/

# Suppression de l'archive de téléchargement
rm /var/www/glpi-11.0.6.tgz