この記事を書く人と信憑性
家富正幸(いえとみまさゆき)
現役のWordPressエンジニア(エンジニア歴16年)
大規模から小規模までのWordPressテーマ開発実績数は800件以上あり、WordPressで構築された企業のウェブサイトの保守も行なっている
本記事では、安易にバージョンアップを行うことで起こりうるリスクやバージョンアップの必要性について解説していきます。
はじめに
あなたはWordPressのバージョンアップの通知が表示された際、不安を感じることはありませんでしょうか?
「自分でバージョンアップして大丈夫なの?」
「バージョンアップして不具合が起きないの?」
などと不安に思う方は意外とに多いのではないでしょうか。
本日は、そんなバージョンアップに関する基本的な知識や知っておきたいリスクについて解説していきます。
WordPressのバージョンアップとは?
そもそもWordPressのバージョンアップなんですか?
一言で言うと、「不具合なく、常に使いやすいシステム」にしていくからだよ
WordPressはオープンソースのソフトウェアですので、今この瞬間も常に世界中のプログラマーによって開発が続けられていて、脆弱性(ぜいじゃくせい)や不具合の修正、新しい機能の追加などが休むことなく行われています。
その脆弱性や不具合の修正、新しい機能の追加などが、ある程度完了した(目処がついた)段階で、WordPressの「バージョンアップ」が行われます。
プログラムの不具合や設計上のミスが原因で発生するセキュリティ上の欠陥のことを言います。
WordPressのセキュリティ対策については、こちらの記事で、実際に起きた被害事例や具体的なセキュリティ対策について解説しておりますので、参考にしていただければ幸いです。
バージョン管理とバージョンアップ
基本的なバージョンアップについて理解したら、少し深掘りしてみよう
バージョンアップには下記の2つのパターンがあります。
- 軽微な機能の追加と、不具合の修正を目的とした「マイナーバージョンアップ」
- 大きな機能の追加を目的とした「メジャーバージョンアップ」
WordPressは3桁のバージョン番号で管理されており、4.9.8(x.y.z)というような表記になります。
バージョンアップの際、x > y > z という順で、変更内容が大きくなることを意味します。
例えば 4.9.8 から 4.9.9 になる場合と、
4.9 から 4.10 になる場合では、後者の方が変更のスケールが大きくなります。
4.9.8 → 4.9.9
バージョンアップの際のスケール感は小さい
4.9 → 4.10
バージョンアップの際のスケール感は大きい
マイナーバージョンアップ
マイナーバージョンアップはセキュリティホールの修正、プログラムの不具合修正などが主な目的となり、1ヶ月に1回〜数回くらいのペースで行われます。
軽微な修正や追加が多いため、マイナーバージョンアップでは、大きな問題が起こることはほとんどありません。
マイナーバージョンアップはさきほどの3桁のバージョン番号のうち、主に z が変わるようなバージョンアップになります。
メジャーバージョンアップ
これに対してメジャーバージョンアップは、3ヶ月〜6ヶ月に1回のペースで行われ、大きな機能の追加があったり、既存の古い機能の削除が行われたり、画面デザインが一新されたりと大きな変更が多くなります。
その一方、古い機能が使えなくなったり、構成が変わったりすることで、今まで使っていたテーマやプラグインが動かなくなる可能性が出るなど、問題が発生することがあります。
メジャーバージョンアップは、さきほどの3桁のバージョン番号のうち、主に x や y が変わるようなバージョンアップになります。
なるほど!メジャーバージョンアップの際に、リスクをあるんですね
ですね!特にホームページ(CMS)として使っている場合や、プラグインを多く入れている場合など注意が必要です。リスクについて、下記の章で深掘りしていきます。
WordPressのバージョンアップを「行う」ことにより起こり得るリスク
WordPressは常に世界中のエンジニアがコードの改良や新機能の追加などを行っており、速いペースでバージョンアップが行われています。
定期的にバージョンアップした内容が配信されてくるのですが、このバージョンアップにおいては、WordPress本体のプログラムの動作などが改善・調整されているため、内容によっては下記のようなリスクがあるのです。
バージョンアップにより起こりうるリスク
- 今まで使っていたテーマファイルが動作しなくなる
- 今まで使っていたプラグインファイルが動作しなくなる
WordPressサイトを運用し収益を上げている企業体やブロガー・アフィリエイターの方などは、こういったリスクによってサイトが一時的でも見られなくなったりすれば大変なことになります。
また、サイトが閲覧できなくなれば、企業や個人の信頼性にも繋がることになります。
以上のようなリスクがあるため、「バージョンアップ=怖い」という考えを持つ方も少なくありません。
WordPressのバージョンアップを「行わない」ことにより起こり得るリスク
WordPressのバージョンアップに関しては、バージョンアップを「行わない」ことにもリスクが生じます。
WordPressは上記の通り、日々エンジニアがコードの改良などを行っています。
その中で「セキュリティアップデート」と呼ばれるアップデートも配信されることが多くなっています。
これはエンジニアがWordPressに存在している潜在的なセキュリティホールなどを調整したアップデートとなり、WordPressを運用している上で問題になり得る「脆弱性」を修正するためのアップデートです。
WordPressはその認知度の高さから世界中から狙われてしまうプラットフォームでもあり、そういった不正アクセスを試みる人間は、日々「脆弱性」を探しています。
IPA(情報処理推進機構)という団体が、オープンソースソフトウェアなどの脆弱性などについて情報を発信していますが、下記のような記事をご覧いただくと、過去にWordPressにも深刻な脆弱性があったことを示しています。
こういった不具合を放置しておくことで、不正アクセスの被害に遭ってしまうだけではなく、サイトで個人情報を管理している場合などは、個人情報の流出といった大問題に発展する可能性もあります。
上記のような大きな脆弱性は、そこまで高い頻度で発見されるわけではありませんが、細かな脆弱性などは日々エンジニアから報告がされるため、WordPressは常にアップデートを行っているのです。
脆弱性はプラグインにも発見されることがあります。
脆弱性という問題は、WordPress本体だけの問題ではありません。
プラグインに脆弱性が発見されることも多く、プラグイン開発者がプラグインのセキュリティ対策のアップデートを配信することもあります。
バージョンアップの必要性
バージョンアップを「行う」ことにより起こり得るリスク、またバージョンアップを「行わない」により起こり得るリスクと、ふたつの面でのリスクについて記事を書きました。
どちらにもリスクがあって、結局どうしたら良いのでしょうか・・?
結論を言うと、WordPress本体やプラグインのアップデートは行うべきです。
CMSとして作り込んだ複雑なサイトを運用しているのであれば、バージョンアップの前にテストサイトにて、予めテストを行うことで不具合などのリスクを避ける事が可能となります。
この予めテストサイトにてバージョンアップを行う方法については、失敗しないWordPressバージョンアップの手順を5つのステップで解説をご覧ください。
この記事の手順に従っていただければ、不具合発生のリスクを避けることができますので、ぜひ参考にしてみてください。
バージョンアップと不具合リスクについて
「バージョンアップすると不具合が起こる」と言われますが、実際のところはどうでしょうか?
過去、私たちが管理させていただいている多くのWordPressサイトのバージョンアップに関わってきましたが、「本当の話」と言えます。
テーマやプラグインに起因する不具合
先ほど解説したメジャーバージョンアップの際に、使っているテーマが古かったり、使っているプラグインが古い機能を利用している場合に、不具合が発生する可能性があります。
ただし、テーマだけで言えばそこまで頻度は多くありません。
WordPressはとにかく「後方互換性」を大事にするアップデートを心がけており、廃止するよ!と警告された機能でも数年間はそのまま使えることが多く、大きな構造変更などが発生しても、「使う側からはわからないように」配慮され、基本的には今まで通り利用出来ることが多いです。
確かに廃止された機能や大きく変更された機能に依存しているプラグインが、こういった不具合を発生させることはあるのですが、そこまでWordPressが大きな構造変更をしたのは、数える程度しかないでしょう。
ではなぜ、バージョンアップ=不具合という概念ができてしまったのでしょうか?
それは本体がバージョンアップして新機能が増えた場合等に、更新が活発なプラグインなどはすぐにそういった機能を取り込んで、もっと便利な機能を実現しようとします。
WordPressのプラグイン管理機能では、プラグインのアップデートがあった場合、内容がどうあれ「アップデートがある」という通知を行い、管理画面から簡単にアップデートができるようになっています。
例えばプラグインがバージョン5.0から利用出来る機能を搭載してアップデートされた場合、もしバージョン4.9未満を使っている方が、そのバージョンを適用してしまったらどうでしょうか?
プラグイン側が厳密にバージョンによる処理分け等を行っていない場合、不具合が発生することになります。
これが「バージョンアップすると不具合が起きる」という概念の大元になっているのだと推測しています。
WordPress本体のバージョンアップが原因なのか、テーマやプラグインのバージョンアップが原因なのか、正しく切り分けて調べていく必要があるでしょう。
サーバー環境に起因する不具合
また、メジャーバージョンアップでは必要となる「PHPのバージョン」「MySQLデータベースのバージョン」などが変更される恐れがあります。
その場合、バージョンアップ後のWordPressが求めるPHPのバージョンや、MySQLのバージョンを満たさない状態でバージョンアップをしてしまうと、エラーが表示されてウェブサイトそのものが閲覧できないような、致命的な不具合が発生することになります。
過去にあった大きなバージョンアップの際の不具合の事例として、3.1.4 から 3.2 になる際、3.1.4 まではPHPのバージョン 5.1.6 が利用できればよかったのですが、3.2からはPHPのバージョン 5.2.4 以上が必須となり、動作させることができないサーバーが頻発しました。
PHPのバージョン確認やリスクにつきましては、WordPress PHPのバージョンを確認!古いと危険 リスクを防ぐために確認しておきたい3つのことをご覧ください。
テーマやプラグインが古い機能を使用しているかどうかの確認方法
この章は技術的な側面のある少し難易度が高い内容となりますので、ご了承ください。
バージョンアップ時の不具合の原因として「古い機能を使用している」を指摘しましたが、下記では「古い機能を使用しているか」の確認方法をご紹介したいと思います。
本番公開中のサイトでこれをやると、警告表示などがお客様に見えるところに表示されてしまうので、セキュリティ上の大きなリスクになります。
実施する際はテストサーバーなど、自分や社内の人間しか目に触れない環境を用意して、そこで実施するようにしてください。
本番公開中のサイトで実施した結果については、如何なる場合も責任を負うことができませんので、重々ご注意下さい。
WordPressでは将来のバージョンアップに備えて、「古い機能」を使っている場合に警告を出す機能が備わっています。
この警告を表示するには、WordPressのデバッグ機能をONにする必要があります。
wp-config.php
の WP_DEBUG
定数を true に変更し、サイトを確認してみて下さい。
所々に xxx is deprecated. since version yyy …
と、表示されていませんか?
この表示は「xxx という機能は、WordPressのバージョン yyy から非推奨になったよ」という警告なのです。
上記のxxxという箇所には、非推奨となってしまったWordPressの関数(機能)名が入ります。
yyyという箇所には、WordPressのどのバージョンから非推奨になったか、というバージョン番号が入ります。
ここで表示されたxxxという関数(機能)は、既に非推奨になっている機能のため、将来廃止される恐れがあるのです。
WordPressは後方互換性をとにかく大事にしているので、この警告が出ても、数ヶ月〜数年は機能が残されて使えることが多いのですが、上記で説明したバージョン5.0のGutenberg(グーテンベルグ)といった、後方互換性を犠牲にした大胆なアップデートも存在します。
ただ、開発側からは「削除するよ」という風に警告されているわけですから、いつ削除されてもこちらとしては文句を言えないわけです。
もしこの警告がテーマやプラグインで出ている場合、本体のバージョンアップ直後で、テーマやプラグインの開発者がまだ気付いていないだけなら良いのですが、バージョンアップが無い古いテーマやプラグインだったり、テーマやプラグインをバージョンアップしてもこのエラー表記が出続けていたりする場合は、警戒する必要があります。
そんな場合は、テーマやプラグインを改造して、その機能を使うことを止めるか、違うプラグインに乗り換えるなどの対策を行う必要性があるでしょう。
バージョンアップをする前に確認&実施すること
メジャーバージョンアップは、単なる機能の追加にとどまらず、機能の削除や対応するPHPバージョンの変更などが発生している場合もありますので、バージョンアップを行う前に必ず以下の事を確認して下さい。
- 新しいWordPressが必要とするPHPのバージョンと、サーバーのPHPバージョン
- 新しいWordPressが必要とするMySQLデータベースのバージョンと、サーバーのMySQLバージョン
- 現在のサイトが古い機能を使っているかどうか
マイナーバージョンアップの場合、軽微な機能の追加と、セキュリティ対策などが主な修正内容になりますので、そこまで大きな不具合が発生する可能性は大きくありませんが、念のため上記の確認と実施を行っておくことをお勧めします。
上記のうち、1.や2.を満たさないことが分かった場合、サーバーの移管なども検討しましょう。
1.や2.を満たさない場合、現状のサーバーでバージョンアップを実施しても必ず失敗しますので、絶対に行わないで下さい。
稀に「WordPress完全対応!」と謳ったサーバーがありますが、バージョンまでは明記していないことが多いため、必ずご自身で対応しているかを確認して下さい。
以前にWordPress3.1までしか対応していないのに、WordPress完全対応!と謳ったサーバーに実際に遭遇したことがあります・・
3.については先ほど述べたとおり、デバッグモードをオンにして、非推奨の機能を使っていないか確認をしてみてください。
また、アップデートの前に必ずWordPressのバックアップを実施して、いつでも元に戻せる状態にしておきましょう。
バックアップを取り忘れてしまった場合、不具合が起きたときに取り返しが付かないことになるので、バージョンアップ前には必ずバックアップを取り、サイトが正常に動作することが確認できるまで、バックアップは大切に保管しておきましょう。
バックアップについては、別記事のWordPressの保守に使える!バックアップ方法2種類のご紹介を参考にしてください。
バージョンアップで不具合が出てしまったら
- 画面が真っ白になってしまった!
- 管理画面にアクセスできない!
- 警告がでて画面が崩れてしまった!
- etc…
そういった不具合が起きてしまった場合、WordPressの専門知識が必要となり、自力で修正するのが難しくなります。
もし管理画面にアクセスできるのであれば、プラグインを1個1個停止させながら、都度サイトが正しく表示されるようになるか確認してみましょう。
もしプラグインが原因だった場合、1.の作業の途中で、正常な表示に戻ることがあります。
そうなった場合、そのプラグインがWordPressのバージョンアップについてこれていないため、作者がプラグインをバージョンアップするのを待つか、自分でそのプラグインを改造してしまうか、違うプラグインを探す必要があります。
もしプラグインを全部停止させても、エラー表示が出たりサイトが表示されなかった場合、テーマに不具合があるか、それ以外の不具合が起こっている可能性が高いです。
速やかにバックアップを用いて、バージョンアップ前のサイトを復元させましょう。
この不具合を修正するには、WordPressとPHPの知識が必要になります。
もしご自身で作成されたサイトではなければ、開発元に相談してみる必要があります。
自動バージョンアップについて
WordPressにはバージョンアップを自動的に適用する「自動バージョンアップ」がバージョン 3.7 から搭載されました。
この機能を使うには、PHP側からWordPressの全ファイルが書き換えできる、という前提条件を満たす必要があります。
条件を満たしているのであればバージョンアップが配信された場合に、自動的に本体のバージョンを更新してくれます。
標準的には「マイナーバージョンアップ」のみが自動バージョンアップで適用されるのですが、設定によっては「メジャーバージョンアップ」も自動バージョンアップで適用することも可能です。
非常に便利な機能の反面、例えばWordPressの本体ファイルに手を加えていたり、シビアなバージョン依存があるプラグインを使っていると、自動バージョンアップの後に不具合が出ることがあります。
本来はオンにしておいた方が良いのですが、どうしても不要であったり、メジャーバージョンアップも自動で適用したいという怖いもの知らずな方は、下記のページを参考に最適な設定にしてみてください。
さいごに
今回はWordPressのバージョンアップについて深く理解していただけるような内容を解説してきました。
運用中のサイトに不具合が起こってサイトが見られなくなってしまうことで、大きなトラブルに繋がることがあり、どうしてもバージョンアップは二の足を踏む傾向にあります。
しかしWordPressも日進月歩で進化しており、またセキュリティホールなどの対処もあるため、できる限り最新版で運用した方が、安全な運用ができるようになります。
バックアップを取って、互換性の確認が取れていれば、バージョンアップもそんなに怖いことではありません。
信頼性の高いウェブサイト運営を続けるためにも、バージョンアップが不安で二の足を踏んでいた方は、この機会に検討してみてください。
私たちについて
私たちインスパイアデザインでは、2012年よりWordPressに専門特化し、企業様のWordPress制作、WordPress開発、WordPress保守等のサービス提供を行なっております。
保守に関しては、バージョンアップは必ずテストサイトにて行い、不具合等がないかを確認した後、本番サイトでのバージョンアップを行なっております。
また、万が一のトラブル発生時にも専門のエンジニアが速やかに対応しております。
バージョンアップや保守等の業務を代行されたい方は、お気軽にご相談ください。