web-dev-qa-db-fra.com

Mettre à jour, ajouter, supprimer des plugins, des thèmes ou wordpress derrière l'équilibreur de charge

Je cours wordpress sur deux serveurs identiques. Les deux sont assis derrière un équilibreur de charge. Les deux utilisent la même base de données.

Comment suis-je censé faire des choses comme mettre à jour un plugin ou wordpress?

Ma pensée actuelle est de:

  1. Déconnectez l'un des serveurs du LB - Je sais donc avec lequel je travaille.
  2. Effectuez les modifications nécessaires (par exemple, le plug-in de mise à jour) via le tableau de bord.
  3. Copiez le répertoire nécessaire à partir du serveur actif (par exemple: plugins/some_plugin) et remplacez ce fichier sur le serveur inactif. (Étant donné que des modifications ont déjà été apportées à la base de données, je ne souhaite pas utiliser le tableau de bord pour mettre à jour l'autre serveur).

Est-ce le moyen de mettre à jour/supprimer/ajouter des plugins/wordpress?

Je pensais que ce serait une façon courante d’installer Wordpress, mais je n’ai pas trouvé beaucoup de documentation à ce sujet. Y a-t-il une configuration préférée?

Merci.

4
theyuv

C'est une question fantastique. Personnellement, je n'ai jamais rencontré cela auparavant, mais voici ce que j'essaierais, en supposant que:

  • vous avez l'image d'un serveur que vous avez utilisé pour créer de nouvelles instances
  • vous utilisez un CDN et un stockage en nuage pour les images et les téléchargements (plutôt que d'avoir un dossier de téléchargements local)

Avec ces deux hypothèses, cela signifie que vous pouvez activer et désactiver des instances du serveur sans vous soucier de la perte de données - les fichiers et la configuration entre chaque serveur sont identiques.

  • Spin up une nouvelle instance de votre serveur, mais ne l'ajoutez pas à l'équilibreur de charge
  • pointez votre fichier hosts sur l'IP de l'instance
  • mettre à jour le plugin sur l'instance, assurez-vous que tout fonctionne comme prévu
  • créer une image du serveur mis à jour
  • lancer une instance supplémentaire en fonction de l'image mise à jour
  • pointer le LB vers les nouvelles instances

Il s’agit d’un processus un peu pénible, et je pense que nous examinerons également les outils de déploiement automatisés, tels que Capistrano, ou peut-être un service comme Deploy.

1
guiniveretoo

Cela doit être fait en quelques étapes

  1. répliquez la base de données (si vous n'en avez pas déjà).
  2. supprimer un serveur du LB, modifier sa configuration pour pointer vers le "nouveau" DB.
  3. connectez-vous à la zone d'administration uniquement à ce serveur (définissez dans votre fichier localhosts l'adresse IP ou tout autre moyen et effectuez la mise à niveau.).
  4. Dans le LB, éteignez l'autre serveur et celui mis à niveau.
  5. mettre à jour le plugin sur l'autre serveur (en gros, il suffit de mettre à jour le code)
  6. connectez l'autre serveur au "nouveau" DB
  7. changez la configuration de LB pour activer l'autre serveur.

Comme il ne s’agit pas d’une procédure extrêmement rapide, vous devez réduire le nombre de plug-ins que vous utilisez en tant que plug-ins purs ou essayer d’en mettre à jour autant que possible en même temps.

(J'ai écrit le plugin, mais cela s'applique aussi aux thèmes et au coeur)

1
Mark Kaplun

La plupart de ces réponses semblent reposer sur l'hypothèse que vous seulement exploitez/mettez à jour votre site Web sur un serveur distant; et à ce titre, certaines des solutions semblent très compliquées. J'ai deux sites qui fonctionnent tous deux derrière des équilibreurs de charge - un avec 2 serveurs et un avec 4; qui sont tous deux extensibles à autant de serveurs que nécessaire. Ces deux sites sont maintenus et mis à jour en quelques clics à l'aide d'une version locale, Git et Jenkins.

J'ai une copie fonctionnelle des sites sur localhost sous XAMPP. Les bases de données ne sont pas identiques, mais la structure de fichier l'est. J'ai également un compte BitBucket privé et un .gitignore pour ignorer des éléments tels que mon wp-config local et le dossier /uploads/ (que je ne veux pas ou que je n'ai pas besoin de synchroniser avec le serveur).

Chaque fois qu'il y a une mise à jour de plugin, je la mets à jour via Wordpress sur ma localhost comme d'habitude. Une fois que c'est fait, j'ouvre mon client Git et envoie les modifications à BitBucket.

Sur le serveur, j'ai un service Jenkins qui est configuré pour générer à partir de ma source BitBucket vers le site actif. Je clique sur Build, attendez quelques minutes et tout est terminé. Jenkins construit sur tous les serveurs, et rsync est disponible pour s'assurer que tout est en simpatico.

Donc tout mon processus de mise à jour est Update local -> Git Push -> Jenkins build

Cela dépend du fait que vous avez une localhost ou une autre construction contrôlable que vous pouvez utiliser avec Git, mais une fois que cela est configuré et exécuté, la mise à jour de votre site Wordpress équilibré en charge devient incroyablement facile.

0
indextwo

Je suis dans la même situation depuis de nombreuses années: 3 serveurs derrière un équilibreur de charge. Différents sous-systèmes de disque. Base de données partagée. J'ai effectivement trouvé cette question en cherchant un moyen de simplifier la gestion. Ce que je fais (et ce qui fonctionne bien) depuis de nombreuses années est le suivant:

  1. Assurez-vous que j'ai des sauvegardes automatiques de tout (base de données et fichiers) ... juste au cas où. Je n'en ai jamais eu besoin, mais c'est toujours une condition préalable.
  2. Connectez-vous à la console WP et notez le serveur auquel vous vous connectez, si possible.
  3. Mettre à jour WordPress et ses plugins en utilisant les méthodes habituelles de l'interface utilisateur
  4. Connectez-vous au serveur en question (et si vous ne savez pas quelle technologie utilise votre infrastructure, consultez l'horodatage des fichiers du plug-in que vous venez de mettre à jour).
  5. Copiez l'arborescence de répertoires wordpress sur le ou les autres serveurs
  6. Sauvegardez les anciens répertoires WP et remplacez-les par les nouveaux.

Cela n'a jamais échoué. Cependant, il n'est pas recommandé à 100%, car WP s'exécutant sur les serveurs qui ne sont pas encore mis à niveau peut rencontrer des problèmes lors de la mise à niveau en raison d'incohérences de logiciels ou de bases de données. En général, le processus est très rapide de toute façon.

La meilleure solution consiste à effectuer les opérations ci-dessus, mais en prenant les serveurs, vous ne mettez pas à jour d'abord la mise hors service et vous les mettez à jour avant de les réactiver sur votre équilibreur de charge. Je suppose que c'est à vous de décider où vous vous situez sur la courbe "rapide et facile" vs "risque" de votre blog.

0
Erik Kangas