wake-up-neo.net

Aktualisieren, Hinzufügen, Entfernen von Plugins, Themes oder WordPress hinter Load Balancer

Ich verwende WordPress auf zwei identischen Servern. Beide sitzen hinter einem Load Balancer. Beide verwenden dieselbe Datenbank.

Wie soll ich ein Plugin oder WordPress aktualisieren?

Mein aktueller Gedanke ist:

  1. Trennen Sie einen der Server von der LB - damit ich weiß, mit welchem ​​ich arbeite.
  2. Notwendige Änderungen (zB Update Plugin) über das Dashboard durchführen.
  3. Kopieren Sie das erforderliche Verzeichnis vom aktiven Server (z. B .: plugins/some_plugin) und ersetzen Sie diese Datei auf dem inaktiven Server. (Da bereits Änderungen an der Datenbank vorgenommen wurden, möchte ich das Dashboard nicht zum Aktualisieren des anderen Servers verwenden.).

Ist dies der Weg zum Aktualisieren/Entfernen/Hinzufügen von Plugins/WordPress?

Ich dachte, dies wäre ein üblicher Weg, um WordPress einzurichten, aber ich fand nicht viel Dokumentation darüber. Gibt es eine bevorzugte Aufstellung?

Vielen Dank.

4
theyuv

Dies ist eine fantastische Frage - ich persönlich bin noch nie darauf gestoßen, aber ich würde Folgendes versuchen, vorausgesetzt:

  • sie haben ein Image eines Servers, den Sie zum Hochfahren neuer Instanzen verwendet haben
  • sie verwenden ein CDN und einen Cloud-Speicher für Bilder und Uploads (anstatt einen lokalen Upload-Ordner zu haben).

Mit diesen beiden Annahmen können Sie Instanzen des Servers hoch- und herunterfahren, ohne sich um Datenverlust sorgen zu müssen - die Dateien und die Konfiguration zwischen den einzelnen Servern sind identisch.

  • Starten Sie eine neue Instanz Ihres Servers, fügen Sie sie jedoch nicht zum Lastenausgleich hinzu
  • zeigen Sie mit Ihrer Hosts-Datei auf die IP-Adresse der Instanz
  • aktualisieren Sie das Plugin auf der Instanz, und stellen Sie sicher, dass alles wie erwartet funktioniert
  • erstellen Sie ein Image des aktualisierten Servers
  • starten Sie eine weitere Instanz basierend auf dem aktualisierten Image
  • richten Sie die LB auf die neuen Instanzen

Dies ist ein schmerzhafter Prozess, und ich denke, als Nächstes werden auch automatisierte Bereitstellungstools wie Capistrano oder ein Dienst wie Deploy behandelt.

1
guiniveretoo

Dies muss in wenigen Schritten erfolgen

  1. replizieren Sie die Datenbank (falls Sie noch keine haben).
  2. entfernen Sie einen Server aus dem LB, und ändern Sie seine Konfiguration so, dass er auf die "neue" DB zeigt.
  3. stellen Sie eine Verbindung zum Admin-Bereich nur zu diesem Server her.
  4. Schalten Sie in der LB den anderen Server aus und den aktualisierten ein.
  5. aktualisiere das Plugin auf dem anderen Server (im Grunde genügt es, den Code zu aktualisieren)
  6. verbinden Sie den anderen Server mit dem "neuen" DB
  7. ändern Sie die LB-Konfiguration, um den anderen Server zu aktivieren.

Da dies keine extrem schnelle Prozedur ist, sollten Sie entweder die Anzahl der Plugins, die Sie als reine Plugins verwenden, minimieren oder versuchen, so viele wie möglich gleichzeitig zu aktualisieren.

(Ich habe das Plugin geschrieben, aber es gilt auch für die Themen und den Kern.)

1
Mark Kaplun

Die meisten dieser Antworten scheinen auf der Annahme zu beruhen, dass Sie nur Ihre Website auf einem Remote-Server ausführen/aktualisieren. und als solche scheinen einige der Lösungen sehr kompliziert zu sein. Ich habe zwei Sites, die beide hinter Load Balancer laufen - eine mit 2 Servern und eine mit 4; Beide sind auf beliebig viele Server skalierbar. Beide Sites werden mit ein paar Klicks mit einem lokalen Build, Git und Jenkins, gewartet und aktualisiert.

Ich habe eine Funktionskopie der Sites auf localhost, die unter XAMPP ausgeführt werden. Die Datenbanken sind nicht identisch, aber die Dateistruktur ist. Ich habe auch ein privates BitBucket-Konto und einen .gitignore, um Dinge wie meinen lokalen wp-config und den /uploads/-Ordner zu ignorieren (die ich nicht mit dem Server synchronisieren möchte oder muss).

Wann immer es ein Plugin-Update gibt, aktualisiere ich es wie gewohnt über Wordpress auf meiner localhost. Sobald es fertig ist, öffne ich meinen Git-Client und drücke die Änderungen auf BitBucket.

Auf dem Server habe ich einen Jenkins - Dienst, der so eingestellt ist, dass er von meiner BitBucket-Quelle zur Live-Site erstellt wird. Ich klicke auf Build, warte ein paar Minuten und alles ist erledigt. Jenkins baut auf allen Servern und es gibt rsync, um sicherzustellen, dass alles simpatico ist.

Mein gesamter Update-Prozess ist also Update local -> Git Push -> Jenkins build

Dies hängt davon ab, dass Sie über eine localhost oder eine andere steuerbare Version verfügen, die Sie mit Git pushen können. Sobald diese jedoch eingerichtet ist und ausgeführt wird, wird das Aktualisieren Ihrer Wordpress-Site mit Lastenausgleich unglaublich einfach.

0
indextwo

Ich bin seit vielen Jahren in der gleichen Situation - 3 Server hinter einem Load Balancer. Verschiedene Festplattensubsysteme. Gemeinsame Datenbank. Ich habe diese Frage tatsächlich gefunden, indem ich nach einer Möglichkeit gesucht habe, die Verwaltung zu vereinfachen. Was ich seit vielen Jahren mache (und was gut funktioniert), ist Folgendes:

  1. Stellen Sie sicher, dass ich automatische Sicherungen von allem (Datenbank und Dateien) habe ... nur für den Fall. Ich habe sie nie gebraucht, aber das ist immer eine Voraussetzung.
  2. Melden Sie sich bei der Administratorkonsole WP an und notieren Sie sich, mit welchem ​​Server Sie sich verbinden, wenn möglich
  3. Aktualisieren Sie WordPress und Plugins mit den normalen UI-Methoden
  4. Melden Sie sich bei dem betreffenden Server an (und sehen Sie sich die Zeitstempel der gerade aktualisierten Plug-in-Dateien an, wenn Sie nicht wissen, welche Funktion Ihrer Infrastruktur verwendet wurde).
  5. Kopieren Sie den WordPress-Verzeichnisbaum auf die anderen Server.
  6. Sichern Sie dort die alten Verzeichnisse WP und ersetzen Sie sie durch die neuen Verzeichnisse.

Das ist nie gescheitert. Es wird jedoch nicht zu 100% empfohlen, da WP auf den Servern ausgeführt wird, die noch nicht aktualisiert wurden. Dies kann zu Problemen während des Upgrades aufgrund von Software- oder Datenbankinkonsistenzen führen. Normalerweise ist der Prozess sowieso sehr schnell.

Die beste Lösung besteht darin, das oben Genannte zu tun. Indem Sie die Server jedoch nicht zuerst außer Betrieb setzen, aktualisieren Sie sie, bevor Sie sie auf Ihrem Load Balancer wieder aktivieren. Ich nehme an, es liegt an Ihnen, wo Sie in die "schnelle und einfache" vs "Risiko" Kurve für Ihr Blog passen.

0
Erik Kangas