Activer ou désactiver le mode de maintenance
Le guide suivant fait référence à une page de mode de maintenance standard. Si vous devez utiliser une page de maintenance personnalisée, consultez la rubrique Création de la page de maintenance personnalisée .
Adobe Commerce utilise le mode de maintenance pour désactiver le démarrage. La désactivation de l’amorçage s’avère utile lorsque vous maintenez, mettez à niveau ou reconfigurez votre site.
L'application détecte le mode de maintenance comme suit :
- Si
var/.maintenance.flag
existe, le mode de maintenance est activé et l’application renvoie une page de maintenance 503. - Si
var/.maintenance.ip
existe et que l’adresse IP du client correspond à l’une des entrées d’adresse IP dans ce fichier, la page de maintenance est ignorée pour la requête.
Installation de l’application
Avant d'utiliser cette commande pour activer ou désactiver le mode de maintenance, vous devez installer l'application.
Activer ou désactiver le mode de maintenance
Utilisez la commande d'interface de ligne de commande magento maintenance
pour activer ou désactiver le mode de maintenance.
Utilisation des commandes :
bin/magento maintenance:enable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:disable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:status
L’option --ip=<ip address>
est une adresse IP qui permet d’exempter le mode de maintenance (par exemple, les développeurs effectuant la maintenance). Pour exempter plusieurs adresses IP dans la même commande, utilisez l’option plusieurs fois.
--ip=<ip address>
avec magento maintenance:disable
enregistre la liste des adresses IP en vue d’une utilisation ultérieure. Pour effacer la liste des adresses IP exemptées, utilisez magento maintenance:enable --ip=none
ou reportez-vous à la section Maintenance de la liste des adresses IP exemptées.La commande bin/magento maintenance:status
affiche l’état du mode de maintenance.
Par exemple, pour activer le mode de maintenance sans dispenses d’adresses IP :
bin/magento maintenance:enable
Pour activer le mode de maintenance pour tous les clients, à l’exception des versions 192.0.2.10 et 192.0.2.11 :
bin/magento maintenance:enable --ip=192.0.2.10 --ip=192.0.2.11
Après avoir mis l’application en mode de maintenance, vous devez arrêter tous les processus consommateurs de la file d’attente des messages.
Une méthode pour trouver ces processus consiste à exécuter la commande ps -ef | grep queue:consumers:start
, puis à exécuter la commande kill <process_id>
pour chaque consommateur. Dans un environnement à plusieurs noeuds, répétez cette tâche sur chaque noeud.
Maintenir la liste des adresses IP exemptées
Pour conserver la liste des adresses IP exemptées, vous pouvez utiliser l’option [--ip=<ip list>]
dans les commandes précédentes ou utiliser les éléments suivants :
bin/magento maintenance:allow-ips <ip address> .. <ip address> [--none]
La syntaxe <ip address> .. <ip address>
est une liste facultative délimitée par des espaces d’adresses IP à exempter.
L’option --none
efface la liste.
Configurations multi-magasin
Si vous souhaitez configurer plusieurs magasins, chacun avec une disposition différente et un contenu localisé, transmettez le paramètre $_GET['skin']
au processeur prévu.
Dans l’exemple suivant, nous utilisons un fichier de modèle d’erreur de type 503
qui nécessite du contenu localisé.
Le constructeur de la classe Error_Processor
accepte un paramètre de GET skin
pour modifier la mise en page :
if (isset($_GET['skin'])) {
$this->_setSkin($_GET['skin']);
}
Vous pouvez également l’ajouter à une règle de réécriture dans le fichier .htaccess
qui ajoute un paramètre skin
à l’URL.
Paramètre $_GET['peau']
Pour utiliser le paramètre skin
:
-
Vérifiez si le
.maintenance.flag
existe. -
Notez l’adresse de l’hôte, qui fait référence à
HTTP_HOST
, ou toute autre variable telle que les variables ENV. -
Vérifiez si le paramètre
skin
existe. -
Définissez le paramètre à l’aide des règles de réécriture ci-dessous.
Voici quelques exemples de règles de réécriture :
- RewriteCond
%{DOCUMENT_ROOT}/var/.maintenance.flag -f
- RewriteCond
%{HTTP_HOST} ^sub.example.com$
- RewriteCond
%{QUERY_STRING} !(^|&)skin=sub(&|$)
[NC] - RewriteRule
^ %{REQUEST_URI}?skin=sub
[L]
- RewriteCond
-
Copiez les fichiers suivants :
pub/errors/default/503.phtml
àpub/errors/sub/503.phtml
pub/errors/default/css/styles.css
àpub/errors/sub/styles.css
-
Modifiez ces fichiers pour fournir du contenu localisé dans le fichier
503.phtml
et des styles personnalisés dans le fichierstyles.css
.Vérifiez que vos chemins d’accès pointent vers votre répertoire
errors
. Le nom du répertoire doit correspondre au paramètre d’URL indiqué dans leRewriteRule
. Dans l’exemple précédent, le répertoiresub
est utilisé, qui est spécifié comme paramètre dans leRewriteRule
(skin=sub
)