JeuWeb - Crée ton jeu par navigateur
mettre son site en maintenance - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : mettre son site en maintenance (/showthread.php?tid=2623)



mettre son site en maintenance - php_addict - 15-03-2011

salut à tous

je me pose une question qui ne trouve pas de réponse réellement satisfaisante...

je compte mettre en place un système d'activation/désactivation du site dans le cas de gros bug ou de grosse maintenance...bref...un truc du genre "le site est en maintenance, revenez plus tard..."

j'utilise un système MVC (contrôleurs non uniques fait maison)

plusieurs idées me viennent en tête:

- au login du joueur (c'est pourri car il peut y avoir des joueurs connectés)
- un simple champs dans une table SQL qui sera checké dans chaque contrôleur
- un champs dans une table en memory heap (pour le moment je suis sur un mutu)
- un simple fichier ou répertoire qui si présent fera office de condition d'activation/désactivation
- mes contrôleurs peuvent interroger un script qui initialise selon les besoin des variables globales DEFINE, ce qui me sert de configuration globale du site, cela peut être aussi une piste. mais cela nécessite d'éditer à la main le script contenant les données de configuration


je ne sais pas (car je n'ai pas l'expérience de ce genre de truc) si un système de désactivation est nécessaire ou obligatoire...

et cela me parait lourd de checker dans chaque contrôleur si le site est activé/désactivé

avez vous mis un tel système en place? si oui, pour quelle solution avez vous optez ?

merci de m'avoir lu


RE: mettre son site en maintenance - Sephi-Chan - 15-03-2011

Ah ah, vive les frameworks ! Big Grin

Quelques questions importante :
  • Souhaites-tu pouvoir accéder au site (en tant qu'administrateur) pendant cette maintenance ?
  • L'administration de ton site est-elle séparée de la partie publique ?


Sephi-Chan


RE: mettre son site en maintenance - Argorate - 15-03-2011

pourquoi ne pas faire simplement un petit if(!admin AND debug) redirection(page_personalise_pour_la_maintenance.php); ?

Ainsi, tout ceux qui n'ont pas les droits d'admin sont redirigé quand tu es dans le mode "debug" et toi tu n'es pas affecter, ce qui te permet de continuer a voir ton site pour y faire les tests que tu souhaites.... non?


RE: mettre son site en maintenance - php_addict - 15-03-2011

salut

(15-03-2011, 01:35 AM)Sephi-Chan a écrit : Ah ah, vive les frameworks ! Big Grin

Wink . comment les frameworks gèrent ils ceci?

(15-03-2011, 01:35 AM)Sephi-Chan a écrit :
  • Souhaites-tu pouvoir accéder au site (en tant qu'administrateur) pendant cette maintenance ?
  • L'administration de ton site est-elle séparée de la partie publique ?

ma partie admin est bien séparé du site, dans un autre repertoire, il y aura un .htacces different et un login de SESSION different. oui je pourrais me logguer en tant qu'admin


RE: mettre son site en maintenance - Sephi-Chan - 15-03-2011

En ce qui me concerne, je teste la présence d'un fichier (créé/détruit via le bouton rouge de l'interface d'administration).

Concrètement, je l'implémente comme ça :


# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
before_filter :display_maintenance_page, :if => :maintenance_mode?

private

# Rend la vue "app/views/application/maintenance"
def display_maintenance_page
render 'maintenance'
end

# Teste l'existence du fichier "config/maintenance"
def maintenance_mode?
File.exists?(Rails.root.join('config', 'maintenance'))
end
end

# app/controllers/administration_controller.rb
class AdministrationController < ApplicationController
skip_before_filter :display_maintenance_page
end


Sephi-Chan


RE: mettre son site en maintenance - php_addict - 15-03-2011

merci de vos conseils

il est moins couteux de tester si un fichier ou repertoire existe que d'interroger la bdd alors...


RE: mettre son site en maintenance - Sephi-Chan - 15-03-2011

L'existence d'un fichier est effectivement très rapide à tester. Bien plus rapide que de l'ouvrir, bien entendu.
Sinon, tu peux aussi utiliser une variable stockée en mémoire (via Redis ou Memcached, par exemple), mais ça demande plus de moyens. Smile


Sephi-Chan


RE: mettre son site en maintenance - srm - 15-03-2011

Bah si tu es en maintenance à cause de ta base, ton système de maintenance peut-être cassé si tu utilises la base pour savoir si tu es en maintenance Wink


RE: mettre son site en maintenance - php_addict - 15-03-2011

(15-03-2011, 01:39 PM)oxman a écrit : Bah si tu es en maintenance à cause de ta base, ton système de maintenance peut-être cassé si tu utilises la base pour savoir si tu es en maintenance Wink

ah oui, suis je bête...merci


RE: mettre son site en maintenance - Kassak - 15-03-2011

Hum, moi j'utilise un .htaccess, je redirige tout le monde vers une page maintenance.html, sauf mon ip à moi.