🆙定期的に安全なWordPressの更新方法の解説

前回の記事でWordPressを最新に保つために自動更新を有効にする事をお勧めしましたが、自分はプラグインの automatic-updater を使用しているばかりで、他の人に説明できる資料を用意していなかったのでまとめておこうと思います。

そもそもの議題として「更新する必要があるのか?」という点があると思いますが、WordPressは自分で管理をする必要があるWEBアプリケーションなので更新作業が必要になります。例えるならば自動車のオイル交換が必要のように、定期的にアプリケーションを最新版に更新していれば起動速度が速くなったり故障(データ流出や悪意あるサイト内容の改変)というトラブルが回避できます。

自分自身でアプリケーションを開発するのであればWordPressで行う以上の労力が必要になりますし、どうしても更新をする手間を省きたいのであれば既存のプラットフォームに乗り換える選択肢があります。そうなると料金的なコストが上がるのと習得する時間が必要になり自由度が下がり、使い続けるためにはプラットフォームが存続し続けてもらう必要があるので、ご自分が必要となる目的に合致するものを選んでもらう必要があります。

本記事ではWordPressの更新方法さえ覚えてしまえば上記の選択が不要になると考えています。インターネット上で効果的な情報発信を覚えるためにはWordPressの更新方法を覚えておくのは重要なスキルだと考えています。そのための参考資料になれればと思います。

WordPressが挿す「自動更新」の意味合い

まず初めに、WordPressの自動更新についてですが、主に2つの意味合いで使われています。

  • 管理画面上でクリックして更新する機能名「自動更新」
  • 何もしないで最新版が来たら勝手に更新してくれる機能「自動更新」

となっていてややこしいものになっています。

同じ名称ですが実行される処理は若干違い、何もしない場合の自動更新は「マイナーアップデート」が行われます。

マイナーアップデートを解説するためには、バージョン番号の区分が2つあり、

  • メジャーバージョン
  • マイナーバージョン

が存在しています。2020年11月19日 の最新リリースである 5.5.3 を例にすると

  • 5.5.x の数字部分がメジャーバージョン
  • x.x.3 の数字部分がマイナーバージョン

となっています。

そのため、「何もしないで最新版が来たら勝手に更新してくれる自動更新」は x.x.3 の最新版を更新してくれるものになります。これはWordPressをインストールするとデフォルトでONになっている自動更新機能になります。

マイナーバージョンとはセキュリティアップデートのみを対象にしており、基本的な機能の変更はされません。なのでアップデート後にエラーが発生する確率は最小限に抑えられているものしか更新がされません。

WordPressは常に最新版の使用を推奨していますが、過去のメジャーバージョンにもセキュリティパッチが更新されているので管理画面から更新を行わずとも最新のセキュリティパッチが当たったものに更新されていきます。

たとえば 現状の最新メジャーバージョンは 5.5 ですが、過去の 5.3 に対してもマイナーバージョンを上げるリリースが行われています。

セキュリティパッチが更新はされていますが、WordPressの開発としては最新メジャーバージョンを使用した保守しか行っていないので、過去のメジャーバージョンの安全は保証されていません。なので常に最新版に更新していく必要があります。

以上がWordPressの自動更新の概念の話。これが対象となるのはWordPressソースコードのコア部分と翻訳ファイルの話です。テーマとプラグインは分割されており、自動更新の対象外になっていました。

最新版のWordPress 5.5 メジャーバージョンからは事情が変わり、テーマとプラグインの自動更新機能が追加されたので管理コストが少なくなったはずです。

ここまでが前提情報になります。以降は「じゃあアップデートする方法はどうするの?」を書いていきます。

メジャーバージョンも完全自動更新

WordPressは x.x.3 のマイナーバージョン部分はデフォルトで自動更新されると書きました。では 5.5.x のメジャーバージョン部分も自動更新されるように設定していきます。

これは自分が取っているいつもの手法になります。更新後にメール通知が来るので問題が無いか確認して、問題があればバックアップからの復元や問題の解消などを行います。

あまりアクセス数が無い場合や、ある程度のサイト表示が出来なくなる事も許容できる時にこの手法をとることをお勧めします。労力を最小限に出来るメリットがあります。

お勧めはプラグインを使用する方法です。https://wordpress.org/plugins/automatic-updater/

プラグインを入れて設定画面でメジャーバージョンの更新をチェックを付ければ完了です。アップデート後はメールが届くように設定をしておき、アップデートの度にサイトを確認して正常に表示される事を確認しましょう。

経験則的にはcssやjsのminify系のプラグインやキャッシュ系のプラグインでエラーが起こり易い印象なので
(ちゃんと保守されていない物だった可能性はありますが。)
無闇にプラグインを入れないようにしたり、信頼できる情報元以外がお勧めしているものは入れなかったり、バックアップを取っておいて復旧手順を確立しておく事をお勧めします。

プラグインが原因で表示されなくなるぐらいだったら最悪プラグインの使用を停止したり、あまり独自機能に依存しすぎない運用をしておきましょう。

プラグインを使用しないで自動更新をさせるには、PHPファイルで指定する方法もあります。

add_filter( ‘allow_major_auto_core_updates’, ‘__return_true’ );
add_filter( ‘auto_core_update_send_email’, ‘__return_true’ );

こちらは独自テーマを使用していたり子テーマに入れたりプラグイン化して読み込ませましょう。テーマファイルに記載するとテーマ更新時に記載がなくなります。

メジャーバージョンの手動更新

こちらは管理画面上で行う更新方法です。

ダッシュボード -> 更新 -> 「いますぐ更新」のボタンをクリックすればお終いです。一般的な更新方法です。

管理画面に表示される通知を確認した時に実行したり、WordPressのリリース情報をチェックしておく必要があります。

基本としてはこれだけですが、「何かあった場合に巻き戻せるように」「可能な限り安全に」「更新中のダウンタイムを事前に通告したい」場合の最大限問題が発生しないようにする手順は以下になります。

  • 更新を周知(他の管理者や訪問者等、必要と感じる人へ)
  • メンテナンスページの表示
  • バックアップの作成
  • バックアップを使用してローカル環境(もしくはステージング環境)で更新のテスト
  • 使用しているプラグインを全て無効化
  • WordPressの更新、「いますぐ更新」のボタンをクリック
  • 停止したプラグインの使用を有効化
  • 動作確認
  • メンテナンスページの解除

詳細な操作方法はバズ部のこの記事を参照ください

メンテナンスページの表示やバックアップの作成、確認環境の作成が必要になります。

コマンドラインの知識がある人はwp-cliの使用も可能です。メンテナンス表示やバックアップの作成、コマンドでアップデートの実行も行えるのでbashファイルにまとめてしまえば手順の簡略化も可能です。cronに仕掛ければ完全自動更新も可能です。

以上、WordPressの更新方法になりました。
WordPressの更新手順はとても簡略化されており、とても簡単になっています。強いて上げるならバックアップの作成方法や復旧方法も明確になっているとより親切かなと思いますが、それはご自分で作成した方が発生した問題に柔軟に対応できるようになるのかなと考えます。更新手順の記事としては以上になります、お疲れ様でした。

その他

自動更新関連は停止するための情報が多く出てきますが、なぜ自動更新がデフォルトで有効になっているかを考えて、停止した場合のデメリットや対応方法を考えて実行していきたいものです。更新できるようにシステム構築していかなければなりません。

ちなみにこの記事をまとめた情報元は個人的に信用している公式のwordpress.orgの物や、バズ部、capitalpを元にしています。

投稿者: soramugi

ラジオ好きが講じてお仕事に選んだ人。 webエンジニアなので「ラジオで寂しさを無くすシステム制作」をしています(ラジオ=音声コンテンツ)。 東京は立川によく出没します。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中