Chapitre: Mettre à jour une application
« Installation d'une application | ^ Déployer une application jelix | Installer sur un serveur que l'on ne peut pas configurer » |
− Table des matières
Votre application tourne déjà sur votre serveur en production. Et maintenant, vous voulez mettre à jour votre application. Les principales étapes sont:
- Fermer l'application
- Sauvegarder les données et fichiers
- Mettre à jour les fichiers
- Lancer la mise à jour système de Jelix
- Supprimer tous les fichiers de /temp
- Ouvrir l'application
Fermer et ouvrir l'application ¶
Il est souvent mieux d'avoir une simple page web qui dit que l'application n'est pas disponible, pendant le processus de mise à jour. Les utilisateurs ne pourront donc plus exécuter l'application, et c'est une bonne chose, pour que les modules ne puissent modifier la base de données ou d'autres fichiers (en effet, un processus de mise à jour n'est jamais instantané).
Il y a deux possibilités pour fermer une application.
Votre administrateur pourrait reconfigurer le serveur web pour rediriger toutes les requêtes http vers la page montrant le message ou alors pour changer le document root.
Une autre solution est d'utiliser un mécanisme Jelix qui permet de fermer
l'application. Cela fonctionne seulement si vous appelez checkAppOpened()
dans le point d'entrée, juste avant l'appel à jCoordinator
.
Pour effectivement fermer l'application, vous devez créer un fichier,
var/config/CLOSED
, vide ou avec un message à l'intérieur.
Ensuite, Jelix affiche la page lib/jelix/installer/closed.html
. Vous
pouvez proposer votre propre page closed.html
, en la plaçant dans
l'un des répertoires suivant de l'application, parcouru dans cet ordre :
var/themes/<le theme courant>/closed.html
ouvar/themes/default/closed.html
var/themes/closed.html
install/closed.html
Pour ré-ouvrir l'application, supprimez simplement le fichier
var/config/CLOSED
.
Vous pouvez manipuler ce fichier manuellement (si vous
avez seulement un accès FTP à votre site web, c'est la solution), ou, si vous
avez un accès à la ligne de commande, vous pouvez appeler les commandes jelix :
app:open
and app:close
.
$ php console.php app:close
$ php console.php app:open
Vous pouvez donner un message à la commande app:close
. Cela va remplacer le
tag %message%
dans le fichier closed.html.
$ php console.php app:close "Sorry, we are closed for the moment, a new version is coming."
Sauvegarder les données ¶
Avant de procéder à une mise à jour, il est fortement recommandé de faire une sauvegarde. Cette sauvegarde doit concerner :
- toute base de donnée utilisée par l'application
- le contenu du dossier var de l'application, en particulier les fichiers de configuration.
- les sources de l'application, avant de les remplacer par une version plus récente
Il se peut qu'il y ait d'autres sauvegardes à faire, en fonction de l'application. Il faut lire la documentation correspondante, si elle existe, fournie avec l'application.
Mettre à jour les fichiers ¶
La deuxième étape est de mettre à jour les fichiers de votre application. Vous
pourriez uploader les fichiers dans le répertoire, par FTP, SCP ou d'autres
outils comme des outils de déploiement automatique. Vous pourriez aussi faire
la mise à jour avec votre gestionnaire de source favoris (svn update
,
hg pull -u
, git pull -u
...).
Si vous faite la mise à jour manuellement, n'oubliez pas de supprimer les fichiers obsolètes.
Lancer la mise à jour ¶
Maintenant que les fichiers sources sont OK, vous devez mettre à jour l'application elle-même (base de données, configuration...).
IL faut d'abord lancer le configurateur, testapp/install/configurator.php
.
Il va probablement modifier la configuration de l'application : des modules
modifieront des choses et vous demanderont peut-être des informations.
Puis vous lancez l'installateur, comme vous l'avez fait lorsque vous avez installé votre application pour la première fois.
L'installateur Jelix (utiliser par un assistant ou un script d'installation d'application), peut installer et mettre à jour les modules.
Avec un assistant ¶
Si vous avez installé l'application avec un assistant, cela ne va probablement pas fonctionner pour une mise à jour, sauf si la documentation de l'application dit que vous pouvez l'utiliser. Dans ce cas, lancez le script correspondant avec votre navigateur, et supprimez le fichier après la mise à jour.
Avec l'installateur d'application ¶
Si il y a un script install/installer.php
, lancez le simplement: ouvrez
une console, allez dans le répertoire install/
, et ensuite tapez
php installer.php
.
À la main ¶
C'est le cas quand le système d'installation est désactivé dans des projets spécifiques (voir la rubrique précédente sur l'installation). Dans ce cas, vous devez mettre à jour "à la main" ou avec des scripts "maison", tout ce qu'il faut pour que l'application fonctionne.
Nettoyer le répertoire temp ¶
- *Vous devez toujours supprimer tous les fichier stockés dans le répertoire temp/.**, après une installation ou une mise à jour, et avant de lancer l'application application.