2010-10-28 16 views

Répondre

22

Oui. drush vset site_offline 1 le mettra hors ligne, puis drush vdel site_offline le ramènera.

Alternativement, vous pouvez consulter mon Maintenance File module sur drupal.org, ce qui mettra votre site hors ligne s'il trouve un fichier spécifique dans le répertoire.

4

La solution de theunraveler est la meilleure si vous utilisez un seul site. Nous menions une très grande installation drupal multisite, avec des centaines de sites. Les prendre hors ligne de cette façon via drush prend plusieurs secondes par site ce qui était inacceptable. Le moyen le plus rapide de mettre un site hors ligne est de casser la connexion db en renommant par exemple le fichier settings.php. Ensuite, il suffit d'attribuer un thème par défaut qui a un modèle de base qui ne nécessite pas la base de données, en disant "Site Offline" ou quelque chose. Après la mise à niveau, vous pouvez simplement réparer le fichier settings.php et vous êtes prêt à partir.

+0

Cela prend tout aussi longtemps. Pour définir un thème par défaut pour chaque site, vous devez effectuer une modification de la base de données. La commande drush ci-dessus modifie également la base de données: elle est la même que UPDATE {variables} SET value = 1 WHERE name = 'site_offline'. Donc, le problème n'est pas avec drush ou même cette méthode de mise en ligne des sites, ce qui est évidemment le plus idéal. – theunraveler

+0

@theunraveler: Je pense que le point est que vous n'avez besoin de faire un seul changement qu'une fois l'installation terminée. Pas une méthode que je m'utiliserais bien. – googletorp

+0

@theunraveler: ce n'est pas le cas. Dans une installation multisite, vous pouvez définir un thème par défaut dans l'installation de base de sorte que si vous ne pouvez pas atteindre l'un des sites «multisites», il est par défaut à ce thème de base. croyez-moi, j'ai passé beaucoup de temps à enquêter sur ce point, y compris faire le changement de DB directement. ce n'est pas suffisant car le cache n'est pas vidé. Comme je l'ai mentionné ci-dessus, je ne recommande pas cela, sauf si vous avez beaucoup de sites et que la performance est importante. mais avec cette technique, vous pouvez prendre 500 sites hors ligne en quelques secondes, contre 5-7 secondes par site via drush – Nader

14

Juste au cas où quelqu'un a besoin de le faire avec Drupal 7, les commandes sont:

drush vset maintenance_mode 1 --yes # Take site offline 
drush vset maintenance_mode 0 --yes # Put site back online 

Il aide également à ajouter un peu drush cc all après chacune de ces commandes pour faire en sorte que le changement apparaît instantanément aux utilisateurs.

+0

Cette syntaxe fonctionne également avec drupal 6 sur drush en cours, donc est probablement préférable. – ErichBSchulz

0

Avec un alias de site sur D7:

drush @site_alias -y vset maintenance_mode 1 # Take site offline 
drush @site_alias -y vset maintenance_mode 0 # Take site online 
0

Il est assez facile en fait, simplement définir la variable du mode d'entretien à 1 (0 à restaurer la valeur par défaut):

drush vset maintenance_mode 1 
0

Drupal 6

drush vset site_offline 1 

Drupal 7

drush vset maintenance_mode 1