Activation ou désactivation du 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, reportez-vous à la rubrique Création d’une page de maintenance personnalisée.
Adobe Commerce utilise le mode de maintenance pour désactiver le démarrage. La désactivation du démarrage est 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 de 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.
Activation ou désactivation du mode de maintenance
Utilisez la commande magento maintenance
CLI 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 à exclure du mode de maintenance (par exemple, les développeurs qui effectuent 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 consultez Tenir à jour 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 exemption d’adresse IP :
bin/magento maintenance:enable
Pour activer le mode de maintenance pour tous les clients, à l’exception de 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 placé l’application en mode de maintenance, vous devez arrêter tous les processus consommateurs de file d’attente de messages.
Pour trouver ces processus, vous pouvez exécuter la commande ps -ef | grep queue:consumers:start
, puis exécuter la commande kill <process_id>
pour chaque client. Dans un environnement à plusieurs nœuds, répétez cette tâche sur chaque nœud.
Tenir à jour la liste des adresses IP exemptées
Pour gérer la liste des adresses IP exemptées, vous pouvez utiliser l’option [--ip=<ip list>]
dans les commandes précédentes ou les méthodes suivantes :
bin/magento maintenance:allow-ips <ip address> .. <ip address> [--none]
La syntaxe <ip address> .. <ip address>
est une liste facultative d’adresses IP délimitées par des espaces à exempter.
L’option --none
efface la liste.
Configurations multi-magasin
Si vous souhaitez configurer plusieurs magasins, chacun avec une disposition et un contenu localisé différents, 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 GET skin
pour modifier la disposition :
if (isset($_GET['skin'])) {
$this->_setSkin($_GET['skin']);
}
Elle peut également être ajoutée à une règle de réécriture dans le fichier .htaccess
qui ajoute un paramètre skin
à l’URL.
Paramètre $_GET['skin']
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 au
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 un style personnalisé dans le fichierstyles.css
.Assurez-vous 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
)