2010-10-06 9 views
0

Pour mon prochain projet, j'utilisera les déploiements automatiques avec git. Je peux lancer un shellscript avant et après le déploiement. Est-il possible de définir "maintenance" automatiquement avec shell?Comment définir un site en mode maintenance à l'aide du shell-script?

Dans mon .htaccess alors je vérifier si une variable de serveur est configuré pour le déploiement ou de ne pas faire la réécriture à l'entretien?

Est-ce possible et comment dois-je gérer cela?

+0

Que voulez-vous dire par " mode de maintenance "? Le serveur Web doit-il être mis hors ligne ou redirigé vers une page spéciale ou autre? Devrait-il être implémenté dans le code de script ou dans le logiciel de serveur Web? –

+0

Non déconnecté mais un rewriterule temporaire pour une « page de destination » avec le maintien de l'url, il demandait si un rafraîchissement de sa page prend l'utilisateur où il veut être (après le déploiement) –

Répondre

1

Vous pourriez avoir le contrôle .htaccess de l'existence d'un fichier avec un nom, et si elle existe, rediriger vers une page statique « s'il vous plaît tenir ». Ensuite, dans votre script avant, pour mettre le site en mode maintenance, il vous suffit de toucher le fichier. Dans votre script après, rm it.

Exemple:

RewriteCond /path/to/maintmode -f 
RewriteRule ^(.*)$ maintpage.htm?frompage=$1 [L] 

Alors, pour mettre votre application en mode maintenance, faites:

touch /path/to/maintmode 

Pour rétablir en mode direct:

rm /path/to/maintmode 
+0

Et si la page de maintenance est non seulement " Désolé, vers le bas pour ... » mais une pleine page HTML avec CSS, images, ... –

+0

même chose, n'a pas d'importance. Il suffit d'utiliser l'existence du fichier comme déclencheur pour la redirection, peu importe la complexité de la page cible. –