web-dev-qa-db-ja.com

ロードバランサの背後にあるプラグイン、テーマ、またはワードプレスの更新、追加、削除

私は2つの同じサーバー上でワードプレスを実行しています。どちらもロードバランサの後ろにあります。どちらも同じデータベースを使用します。

プラグインやワードプレスの更新などはどうすればいいですか。

私の現在の考えは、

  1. LBからサーバーの1つを切断します - だから私は私が働いているものを知っています。
  2. ダッシュボードで必要な変更(例:プラグインの更新)を行います。
  3. アクティブサーバーから必要なディレクトリをコピーし(例:plugins/some_plugin)、非アクティブサーバー上のそのファイルを置き換えます。 (既にDBに変更が加えられているので、他のサーバーを更新するためにダッシュボードを使用したくはありません)。

これは更新/削除/プラグイン/ワードプレスを追加する方法ですか?

私はこれがワードプレスをセットアップするための一般的な方法になるだろうと思ったが、私はそれについて多くの文書を見つけなかった。好みの設定はありますか?

ありがとう。

4
theyuv

これは素晴らしい質問です - 私は個人的にこれまで遭遇したことがありませんが、ここで私が試してみたいのは次のとおりです。

  • 新しいインスタンスを作成するために使用していたサーバーのイメージがあります。
  • あなたは(ローカルのアップロードフォルダを持つのではなく)画像とアップロードのためにCDNとクラウドストレージを使っています

これら2つの前提条件により、データ損失を心配せずにサーバーのインスタンスをスピンアップおよびスピンダウンすることができます。各サーバー間のファイルと構成は同じです。

  • サーバーの新しいインスタンスを起動しますが、それをロードバランサーに追加しないでください
  • hostsファイルにインスタンスのIPを指定します。
  • インスタンスのプラグインを更新し、期待通りにすべてが機能していることを確認します
  • 更新されたサーバーのイメージを作成する
  • 更新された画像に基づいてもう1つのインスタンスをスピンアップします。
  • lBを新しいインスタンスに向ける

これは少し面倒なプロセスです。次に、Capistranoなどの自動化された展開ツールや、おそらくDeployなどのサービスも検討すると思います。

1
guiniveretoo

これは、いくつかの手順で実行する必要があります。

  1. dBを複製します(まだ持っていない場合)。
  2. lBからサーバを1つ削除し、その設定を「新しい」DBを指すように変更します。
  3. そのサーバーの管理領域にのみ接続します(localhostsファイルにIPまたはその他の方法で定義してアップグレードを行います)。
  4. LBで他のサーバーの電源を切り、アップグレードしたサーバーの電源を入れます。
  5. 他のサーバーのプラグインを更新する(基本的にコードを更新するのに十分です)
  6. もう一方のサーバーを「新しい」DBに接続します。
  7. もう一方のサーバーを有効にするようにLB構成を変更します。

これはあまり素早い手順ではないので、純粋なプラグインとして使用するプラグインの数を最小限にするか、同時にできるだけ多くのプラグインをアップグレードするようにします。

(私はプラグインを書きましたが、それはテーマとコアにも適用されます)

1
Mark Kaplun

これらの答えのほとんどは、あなたが=実行中/リモートサーバー上でWebサイトを更新しているという仮定)に基づいているように思われます。バランサ - 2台のサーバーと4台のサーバーで、どちらも必要な数のサーバーに拡張でき、どちらもローカルビルドのGitとJenkinsを使用して数回のクリックでメンテナンスおよび更新が可能.

私はlocalhostの下で実行されているXAMPPのサイトの機能コピーを持っています。データベースは同一ではありませんが、ファイル構造は同じです。私はまた、私のローカルの.gitignorewp-configフォルダ(これはサーバーと同期したくない、または同期する必要がない)を無視するためのプライベートBitBucketアカウントと/uploads/を持っています。

プラグインの更新があるときはいつでも、私はいつものように私のlocalhostでWordpressを通してそれを更新します。それが終わったら、私はGitクライアントを開いてBitBucketに変更をプッシュします。

サーバー上で、私は Jenkins サービスを自分のBitBucketソースからライブサイトまで構築するように設定されています。私はBuildをクリックして、数分待ってください、そしてすべて完了しました。Jenkinsはすべてのサーバーにビルドします。

だから私の全体の更新プロセスは ローカル更新 - > Git Push - > Jenkins build

これは、Gitでプッシュできるlocalhostやその他の制御可能なビルドを持っていることにかかっていますが、いったんセットアップして実行すると、負荷分散されたWordpressサイトの更新は非常に簡単になります。

0
indextwo

私は長年同じ状況にありました - 3台のサーバーがロードバランサーの後ろにあります。異なるディスクサブシステム共有データベース私は実際には管理を単純化するための方法を探すことによってこの問題を見つけました。私が長年にわたって行ってきたこと(そして正常に機能したこと)は次のとおりです。

  1. 万が一のために、すべて(データベースとファイル)の自動バックアップがあることを確認してください。私はそれらを必要としたことはありませんが、それは常に前提条件です。
  2. WP管理コンソールにログインし、可能であれば、接続しているサーバーをメモします。
  3. 通常のUIメソッドを使用してワードプレスとプラグインを更新する
  4. 問題のサーバーにログインします(そして、インフラストラクチャーの機能をどれが使用しているのかわからない場合は、更新したばかりのプラグインファイルのタイムスタンプを調べてください)。
  5. Wordpressディレクトリツリーを他のサーバにコピーする
  6. そこに古いWPディレクトリをバックアップし、新しいディレクトリに置き換えます。

これは失敗したことがない。ただし、まだアップグレードされていないサーバーでWPを実行すると、ソフトウェアまたはデータベースの不整合のためにアップグレード中に問題が発生する可能性があるため、100%推奨されていません。通常、プロセスはとにかく非常に速いです。

最善の解決策は上記を実行することですが、最初にアップデートしていないサーバをアウトオブサービスにして、ロードバランサで再び有効にする前にそれらをアップデートします。私はそれがあなたがあなたのブログのための「速くて簡単な」対「リスク」曲線に合うところまであなた次第であると思います。

0
Erik Kangas