Mise à niveau de XOOPS
Ce guide couvre la mise à niveau de XOOPS à partir de versions plus anciennes vers la dernière version tout en préservant vos données et personnalisations.
Information sur les versions
- Stable : XOOPS 2.5.11
- Bêta : XOOPS 2.7.0 (test)
- Futur : XOOPS 4.0 (en développement - voir Roadmap)
Liste de contrôle pré-mise à niveau
Section intitulée « Liste de contrôle pré-mise à niveau »Avant de commencer la mise à niveau, vérifiez :
- Version actuelle de XOOPS documentée
- Version XOOPS cible identifiée
- Sauvegarde complète du système effectuée
- Sauvegarde de la base de données vérifiée
- Liste des modules installés et leurs versions enregistrées
- Modifications personnalisées documentées
- Environnement de test disponible
- Chemin de mise à niveau coché (certaines versions sautent les versions intermédiaires)
- Ressources du serveur vérifiées (suffisamment d’espace disque, de mémoire)
- Mode de maintenance activé
Guide du chemin de mise à niveau
Section intitulée « Guide du chemin de mise à niveau »Différents chemins de mise à niveau selon la version actuelle :
graph LR A[2.3.x] -->|Requiert 2.4.x| B[2.4.x] B -->|Directe ou via 2.5.x| C[2.5.x] A -->|Via 2.4.x| C C -->|Stable| D[2.5.11] E[2.5.0-2.5.10] -->|Directe| D D -->|Bêta| F[2.7.0]Important : Ne sautez jamais les versions principales. Si vous mettez à niveau à partir de 2.3.x, d’abord mettre à niveau vers 2.4.x, puis vers 2.5.x.
Étape 1 : Sauvegarde complète du système
Section intitulée « Étape 1 : Sauvegarde complète du système »Sauvegarde de la base de données
Section intitulée « Sauvegarde de la base de données »Utilisez mysqldump pour sauvegarder la base de données :
# Sauvegarde complète de la base de donnéesmysqldump -u xoops_user -p xoops_db > /backups/xoops_db_backup_$(date +%Y%m%d_%H%M%S).sql
# Sauvegarde compresséemysqldump -u xoops_user -p xoops_db | gzip > /backups/xoops_db_backup_$(date +%Y%m%d_%H%M%S).sql.gzOu en utilisant phpMyAdmin :
- Sélectionnez votre base de données XOOPS
- Cliquez sur l’onglet “Exporter”
- Choisissez le format “SQL”
- Sélectionnez “Enregistrer comme fichier”
- Cliquez sur “Aller”
Vérifier le fichier de sauvegarde :
# Vérifier la taille de la sauvegardels -lh /backups/xoops_db_backup*.sql
# Vérifier l'intégrité de la sauvegarde (non compressée)head -20 /backups/xoops_db_backup_*.sql
# Vérifier la sauvegarde compresséezcat /backups/xoops_db_backup_*.sql.gz | head -20Sauvegarde du système de fichiers
Section intitulée « Sauvegarde du système de fichiers »Sauvegardez tous les fichiers XOOPS :
# Sauvegarde de fichiers compresséetar -czf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar.gz /var/www/html/xoops
# Non compressée (plus rapide, nécessite plus d'espace disque)tar -cf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar /var/www/html/xoops
# Afficher la progression de la sauvegardetar -czf /backups/xoops_files_$(date +%Y%m%d_%H%M%S).tar.gz --verbose /var/www/html/xoops | tailStockez les sauvegardes en toute sécurité :
# Stockage de sauvegarde sécuriséchmod 600 /backups/xoops_*ls -lah /backups/
# Optionnel : Copier vers un stockage distantscp /backups/xoops_* user@backup-server:/secure/backups/Tester la restauration de la sauvegarde
Section intitulée « Tester la restauration de la sauvegarde »CRITIQUE : Testez toujours que votre sauvegarde fonctionne :
# Vérifier le contenu de l'archive tartar -tzf /backups/xoops_files_*.tar.gz | head -20
# Extraire vers un emplacement de testmkdir /tmp/restore_testcd /tmp/restore_testtar -xzf /backups/xoops_files_*.tar.gz
# Vérifier que les fichiers clés existentls -la xoops/mainfile.phpls -la xoops/install/Étape 2 : Activer le mode de maintenance
Section intitulée « Étape 2 : Activer le mode de maintenance »Empêchez les utilisateurs d’accéder au site pendant la mise à niveau :
Option 1 : Panneau administrateur XOOPS
Section intitulée « Option 1 : Panneau administrateur XOOPS »- Connectez-vous au panneau d’administration
- Aller à Système > Maintenance
- Activez “Mode de maintenance du site”
- Définissez le message de maintenance
- Enregistrez
Option 2 : Mode de maintenance manuel
Section intitulée « Option 2 : Mode de maintenance manuel »Créez un fichier de maintenance à la racine web :
<!DOCTYPE html><html><head> <title>En maintenance</title> <style> body { font-family: Arial; text-align: center; padding: 50px; } h1 { color: #333; } p { color: #666; margin: 20px 0; } </style></head><body> <h1>Site en maintenance</h1> <p>Nous améliorons actuellement notre site.</p> <p>Temps estimé : environ 30 minutes.</p> <p>Merci de votre patience !</p></body></html>Configurez Apache pour afficher la page de maintenance :
# Dans .htaccess ou dans la configuration du vhostErrorDocument 503 /maintenance.html
# Rediriger tout le trafic vers la page de maintenance<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.100$ # Votre IP RewriteRule ^(.*)$ - [R=503,L]</IfModule>Étape 3 : Télécharger la nouvelle version
Section intitulée « Étape 3 : Télécharger la nouvelle version »Téléchargez XOOPS depuis le site officiel :
# Télécharger la dernière versioncd /tmpwget https://xoops.org/download/xoops-2.5.8.zip
# Vérifier la somme de contrôle (si fourni)sha256sum xoops-2.5.8.zip# Comparer avec le hash SHA256 officiel
# Extraire vers un emplacement temporaireunzip xoops-2.5.8.zipcd xoops-2.5.8Étape 4 : Préparation des fichiers avant la mise à niveau
Section intitulée « Étape 4 : Préparation des fichiers avant la mise à niveau »Identifier les modifications personnalisées
Section intitulée « Identifier les modifications personnalisées »Vérifiez les fichiers principaux personnalisés :
# Rechercher les fichiers modifiés (fichiers avec mtime plus récent)find /var/www/html/xoops -type f -newer /var/www/html/xoops/install.php
# Vérifier les thèmes personnalisésls /var/www/html/xoops/themes/# Notez les thèmes personnalisés
# Vérifier les modules personnalisésls /var/www/html/xoops/modules/# Notez tout module personnalisé que vous avez crééDocumenter l’état actuel
Section intitulée « Documenter l’état actuel »Créez un rapport de mise à niveau :
cat > /tmp/upgrade_report.txt << EOF=== Rapport de mise à niveau XOOPS ===Date : $(date)Version actuelle : 2.5.6Version cible : 2.5.8
=== Modules installés ===$(ls /var/www/html/xoops/modules/)
=== Modifications personnalisées ===[Documenter toute modification personnalisée du thème ou du module]
=== Thèmes ===$(ls /var/www/html/xoops/themes/)
=== Statut des plugins ===[Répertorier toute modification personnalisée du code]
EOFÉtape 5 : Fusionner les nouveaux fichiers avec l’installation actuelle
Section intitulée « Étape 5 : Fusionner les nouveaux fichiers avec l’installation actuelle »Stratégie : Préserver les fichiers personnalisés
Section intitulée « Stratégie : Préserver les fichiers personnalisés »Remplacez les fichiers principaux de XOOPS mais préservez :
mainfile.php(votre configuration de base de données)- Thèmes personnalisés dans
themes/ - Modules personnalisés dans
modules/ - Chargements d’utilisateurs dans
uploads/ - Données du site dans
var/
Processus de fusion manuelle
Section intitulée « Processus de fusion manuelle »# Définir les variablesXOOPS_OLD="/var/www/html/xoops"XOOPS_NEW="/tmp/xoops-2.5.8"BACKUP="/backups/pre-upgrade"
# Créer une sauvegarde pré-mise à niveau sur placemkdir -p $BACKUPcp -r $XOOPS_OLD/* $BACKUP/
# Copier les nouveaux fichiers (mais préserver les fichiers sensibles)# Copier tout sauf les répertoires protégésrsync -av --exclude='mainfile.php' \ --exclude='modules/custom*' \ --exclude='themes/custom*' \ --exclude='uploads' \ --exclude='var' \ --exclude='cache' \ --exclude='templates_c' \ $XOOPS_NEW/ $XOOPS_OLD/
# Vérifier les fichiers critiques préservésls -la $XOOPS_OLD/mainfile.phpUtilisation d’upgrade.php (le cas échéant)
Section intitulée « Utilisation d’upgrade.php (le cas échéant) »Certaines versions XOOPS incluent un script de mise à niveau automatisé :
# Copier les nouveaux fichiers avec le programme d'installationcp -r /tmp/xoops-2.5.8/* /var/www/html/xoops/
# Exécuter l'assistant de mise à niveau# Visiter : http://your-domain.com/xoops/upgrade/Permissions des fichiers après la fusion
Section intitulée « Permissions des fichiers après la fusion »Restaurez les permissions appropriées :
# Définir la propriétéchown -R www-data:www-data /var/www/html/xoops
# Définir les permissions du répertoirefind /var/www/html/xoops -type d -exec chmod 755 {} \;
# Définir les permissions du fichierfind /var/www/html/xoops -type f -exec chmod 644 {} \;
# Répertoires accessibles en écriturechmod 777 /var/www/html/xoops/cachechmod 777 /var/www/html/xoops/templates_cchmod 777 /var/www/html/xoops/uploadschmod 777 /var/www/html/xoops/var
# Sécuriser mainfile.phpchmod 644 /var/www/html/xoops/mainfile.phpÉtape 6 : Migration de la base de données
Section intitulée « Étape 6 : Migration de la base de données »Vérifier les modifications de la base de données
Section intitulée « Vérifier les modifications de la base de données »Consultez les notes de version de XOOPS pour les modifications de la structure de la base de données :
# Extraire et examiner les fichiers de migration SQLfind /tmp/xoops-2.5.8 -name "*.sql" -type f# Documenter tous les fichiers .sql trouvésExécuter les mises à jour de la base de données
Section intitulée « Exécuter les mises à jour de la base de données »Option 1 : Mise à jour automatisée (le cas échéant)
Section intitulée « Option 1 : Mise à jour automatisée (le cas échéant) »Utilisez le panneau d’administration :
- Connectez-vous à l’admin
- Aller à Système > Base de données
- Cliquez sur “Vérifier les mises à jour”
- Vérifiez les modifications en attente
- Cliquez sur “Appliquer les mises à jour”
Option 2 : Mises à jour manuelles de la base de données
Section intitulée « Option 2 : Mises à jour manuelles de la base de données »Exécutez les fichiers SQL de migration :
# Se connecter à la base de donnéesmysql -u xoops_user -p xoops_db
# Voir les modifications en attente (varie selon la version)SELECT * FROM xoops_config WHERE conf_name LIKE '%version%';
# Exécuter les scripts de migration manuellement si nécessaireSOURCE /tmp/xoops-2.5.8/migrate_2.5.6_to_2.5.8.sql;Vérification de la base de données
Section intitulée « Vérification de la base de données »Vérifiez l’intégrité de la base de données après la mise à jour :
-- Vérifier la cohérence de la base de donnéesREPAIR TABLE xoops_users;OPTIMIZE TABLE xoops_users;
-- Vérifier que les tables clés existentSHOW TABLES LIKE 'xoops_%';
-- Vérifier les comptages de lignes (devrait augmenter ou rester identique)SELECT COUNT(*) FROM xoops_users;SELECT COUNT(*) FROM xoops_posts;Étape 7 : Vérifier la mise à niveau
Section intitulée « Étape 7 : Vérifier la mise à niveau »Vérification de la page d’accueil
Section intitulée « Vérification de la page d’accueil »Visitez votre page d’accueil XOOPS :
http://your-domain.com/xoops/Attendu : La page se charge sans erreurs, s’affiche correctement
Vérification du panneau d’administration
Section intitulée « Vérification du panneau d’administration »Accès admin :
http://your-domain.com/xoops/admin/Vérifiez :
- Le panneau d’administration se charge
- La navigation fonctionne
- Le tableau de bord s’affiche correctement
- Pas d’erreurs de base de données dans les journaux
Vérification des modules
Section intitulée « Vérification des modules »Vérifiez les modules installés :
- Allez à Modules > Modules en admin
- Vérifiez que tous les modules sont toujours installés
- Vérifiez les messages d’erreur
- Activez tous les modules qui ont été désactivés
Vérification du fichier journal
Section intitulée « Vérification du fichier journal »Passez en revue les journaux système pour les erreurs :
# Vérifier le journal d'erreur du serveur webtail -50 /var/log/apache2/error.log
# Vérifier le journal d'erreur PHPtail -50 /var/log/php_errors.log
# Vérifier le journal du système XOOPS (le cas échéant)# Dans le panneau d'administration : Système > JournauxTester les fonctions principales
Section intitulée « Tester les fonctions principales »- La connexion/déconnexion de l’utilisateur fonctionne
- L’enregistrement des utilisateurs fonctionne
- Les fonctions de chargement de fichiers
- Les notifications par e-mail s’envoient
- La fonctionnalité de recherche fonctionne
- Les fonctions d’administration opérationnelles
- Fonctionnalité du module intacte
Étape 8 : Nettoyage post-mise à niveau
Section intitulée « Étape 8 : Nettoyage post-mise à niveau »Supprimer les fichiers temporaires
Section intitulée « Supprimer les fichiers temporaires »# Supprimer le répertoire d'extractionrm -rf /tmp/xoops-2.5.8
# Effacer le cache du modèle (sûr à supprimer)rm -rf /var/www/html/xoops/templates_c/*
# Effacer le cache du siterm -rf /var/www/html/xoops/cache/*Supprimer le mode de maintenance
Section intitulée « Supprimer le mode de maintenance »Réactiver l’accès normal au site :
# Supprimer la redirection du mode de maintenance de .htaccess# Ou supprimer le fichier maintenance.htmlrm /var/www/html/maintenance.htmlMettre à jour la documentation
Section intitulée « Mettre à jour la documentation »Mettez à jour vos notes de mise à niveau :
# Documenter la mise à niveau réussiecat >> /tmp/upgrade_report.txt << EOF
=== Résultats de la mise à niveau ===Statut : SUCCÈSDate de mise à niveau : $(date)Nouvelle version : 2.5.8Durée : [temps en minutes]
Tests post-mise à niveau :- [x] La page d'accueil se charge- [x] Panneau d'administration accessible- [x] Modules fonctionnels- [x] L'enregistrement des utilisateurs fonctionne- [x] Base de données optimisée
EOFDépannage des mises à niveau
Section intitulée « Dépannage des mises à niveau »Problème : Écran blanc vide après la mise à niveau
Section intitulée « Problème : Écran blanc vide après la mise à niveau »Symptôme : La page d’accueil ne montre rien
Solution :
# Vérifier les erreurs PHPtail -f /var/log/apache2/error.log
# Activer le mode débogage temporairementecho "define('XOOPS_DEBUG', 1);" >> /var/www/html/xoops/mainfile.php
# Vérifier les permissions des fichiersls -la /var/www/html/xoops/mainfile.php
# Restaurer à partir de la sauvegarde si nécessairecp /backups/xoops_files_*.tar.gz /tmp/cd /tmp && tar -xzf xoops_files_*.tar.gzProblème : Erreur de connexion à la base de données
Section intitulée « Problème : Erreur de connexion à la base de données »Symptôme : Message “Cannot connect to database”
Solution :
# Vérifier les identifiants de la base de données dans mainfile.phpgrep -i "database\|host\|user" /var/www/html/xoops/mainfile.php
# Tester la connexionmysql -h localhost -u xoops_user -p xoops_db -e "SELECT 1"
# Vérifier l'état de MySQLsystemctl status mysql
# Vérifier que la base de données existe toujoursmysql -u xoops_user -p -e "SHOW DATABASES" | grep xoopsProblème : Panneau administrateur non accessible
Section intitulée « Problème : Panneau administrateur non accessible »Symptôme : Impossible d’accéder à /xoops/admin/
Solution :
# Vérifier les règles .htaccesscat /var/www/html/xoops/.htaccess
# Vérifier que les fichiers d'administration existentls -la /var/www/html/xoops/admin/
# Vérifier que mod_rewrite est activéapache2ctl -M | grep rewrite
# Redémarrer le serveur websystemctl restart apache2Problème : Modules ne se chargeant pas
Section intitulée « Problème : Modules ne se chargeant pas »Symptôme : Les modules affichent des erreurs ou sont désactivés
Solution :
# Vérifier que les fichiers du module existentls /var/www/html/xoops/modules/
# Vérifier les permissions du modulels -la /var/www/html/xoops/modules/*/
# Vérifier la configuration du module dans la base de donnéesmysql -u xoops_user -p xoops_db -e "SELECT * FROM xoops_modules WHERE module_status = 0"
# Réactiver les modules dans le panneau d'administration# Système > Modules > Cliquez sur le module > Statut de mise à jourProblème : Erreurs d’autorisation refusée
Section intitulée « Problème : Erreurs d’autorisation refusée »Symptôme : “Permission denied” lors du chargement ou de la sauvegarde
Solution :
# Vérifier la propriété des fichiersls -la /var/www/html/xoops/ | head -20
# Corriger la propriétéchown -R www-data:www-data /var/www/html/xoops
# Corriger les permissions du répertoirefind /var/www/html/xoops -type d -exec chmod 755 {} \;
# Rendre le cache/uploads accessible en écriturechmod 777 /var/www/html/xoops/cachechmod 777 /var/www/html/xoops/templates_cchmod 777 /var/www/html/xoops/uploadschmod 777 /var/www/html/xoops/varProblème : Chargement lent des pages
Section intitulée « Problème : Chargement lent des pages »Symptôme : Les pages se chargent très lentement après la mise à niveau
Solution :
# Effacer tous les cachesrm -rf /var/www/html/xoops/cache/*rm -rf /var/www/html/xoops/templates_c/*
# Optimiser la base de donnéesmysql -u xoops_user -p xoops_db << EOFOPTIMIZE TABLE xoops_users;OPTIMIZE TABLE xoops_posts;OPTIMIZE TABLE xoops_config;ANALYZE TABLE xoops_users;EOF
# Vérifier le journal d'erreur PHP pour les avertissementsgrep -i "deprecated\|warning" /var/log/php_errors.log | tail -20
# Augmenter temporairement la mémoire/le temps d'exécution de PHP# Modifier php.ini :memory_limit = 256Mmax_execution_time = 300Procédure de restauration
Section intitulée « Procédure de restauration »Si la mise à niveau échoue de manière critique, restaurez à partir de la sauvegarde :
Restaurer la base de données
Section intitulée « Restaurer la base de données »# Restaurer à partir de la sauvegardemysql -u xoops_user -p xoops_db < /backups/xoops_db_backup_YYYYMMDD_HHMMSS.sql
# Ou à partir de la sauvegarde compresséegunzip < /backups/xoops_db_backup_YYYYMMDD_HHMMSS.sql.gz | mysql -u xoops_user -p xoops_db
# Vérifier la restaurationmysql -u xoops_user -p xoops_db -e "SELECT COUNT(*) FROM xoops_users"Restaurer le système de fichiers
Section intitulée « Restaurer le système de fichiers »# Arrêter le serveur websystemctl stop apache2
# Supprimer l'installation actuellerm -rf /var/www/html/xoops/*
# Extraire la sauvegardecd /var/www/htmltar -xzf /backups/xoops_files_YYYYMMDD_HHMMSS.tar.gz
# Corriger les permissionschown -R www-data:www-data xoops/find xoops -type d -exec chmod 755 {} \;find xoops -type f -exec chmod 644 {} \;chmod 777 xoops/cache xoops/templates_c xoops/uploads xoops/var
# Démarrer le serveur websystemctl start apache2
# Vérifier la restauration# Visiter http://your-domain.com/xoops/Liste de contrôle de vérification de la mise à niveau
Section intitulée « Liste de contrôle de vérification de la mise à niveau »Après la fin de la mise à niveau, vérifiez :
- Version de XOOPS mise à jour (vérifier admin > Informations système)
- La page d’accueil se charge sans erreurs
- Tous les modules fonctionnels
- La connexion utilisateur fonctionne
- Le panneau d’administration accessible
- Les téléchargements de fichiers fonctionnent
- Les notifications par e-mail fonctionnelles
- L’intégrité de la base de données vérifiée
- Les permissions des fichiers correctes
- Mode de maintenance supprimé
- Les sauvegardes sécurisées et testées
- Les performances acceptables
- SSL/HTTPS fonctionnant
- Pas de messages d’erreur dans les journaux
Prochaines étapes
Section intitulée « Prochaines étapes »Après une mise à niveau réussie :
- Mettre à jour tous les modules personnalisés vers les dernières versions
- Examiner les notes de version pour les fonctionnalités obsolètes
- Envisager l’optimisation des performances
- Mettre à jour les paramètres de sécurité
- Tester entièrement la fonctionnalité
- Garder les fichiers de sauvegarde sécurisés
Tags: #upgrade #maintenance #backup #database-migration
Articles connexes :
- ../../06-Publisher-Module/User-Guide/Installation
- Server-Requirements
- ../Configuration/Basic-Configuration
- ../Configuration/Security-Configuration