あなたはWordPressのバージョンアップの通知が表示された際、不安を感じることはありませんでしょうか?
「自分でバージョンアップして大丈夫なのか?」
「バージョンアップして不具合が起きないか?」
などと不安に思う方は非常に多いでしょう。
本日はそんなバージョンアップに関する基本的な知識や具体的な方法についてお話ししていきます。
WordPressのバージョンアップとは?
WordPressはオープンソースのソフトウェアですので、今この瞬間も常に世界中のプログラマーによって開発が続けられていて、脆弱性の修正や、不具合の修正、新しい機能の追加などが休むことなく行われています。
その脆弱性の修正や、不具合の修正、新しい機能の追加などが、ある程度完了した(目処がついた)段階で、WordPressの「バージョンアップ」が行われます。
バージョン管理とバージョンアップ
バージョンアップには下記の2つがあります。
- 軽微な機能の追加と不具合の修正を目的とした「マイナーバージョンアップ」
- 大きな機能の追加を目的とした「メジャーバージョンアップ」
WordPressは3桁のバージョン番号で管理されており、例えば2018年8月現在の最新バージョンの場合、4.9.8(x.y.z)というバージョンが最新バージョンになります。
バージョンアップの際に数字がアップする場合、x > y > z という順で、変更内容が大きくなることを意味します。
例えば 4.9.8 から 4.9.9 になる場合と、4.9 から 4.10 になる場合では、後者の方が変更のスケールが大きくなります。
マイナーバージョンアップ
マイナーバージョンアップはセキュリティホールの修正、プログラムの不具合修正などが主な目的となり、1ヶ月に1回〜数回くらいのペースで行われます。
軽微な修正や追加が多いため、マイナーバージョンアップでは、大きな問題が起こることはほとんどありません。
マイナーバージョンアップはさきほどの3桁のバージョン番号のうち、主に z が変わるようなバージョンアップになります。
例)4.6.1 → 4.7, 4.6.1 → 5.0 等
メジャーバージョンアップ
これに対してメジャーバージョンアップは、3ヶ月〜6ヶ月に1回のペースで行われ、大きな機能の追加があったり、既存の古い機能の削除が行われたり、画面デザインが一新されたりと大きな変更が多くなります。
その一方、古い機能が使えなくなったり、構成が変わったりすることで、今まで使っていたテーマやプラグインが動かなくなる可能性が出るなど、問題が発生することがあります。
メジャーバージョンアップは、さきほどの3桁のバージョン番号のうち、主に x や y が変わるようなバージョンアップになります。
例)4.6.1 → 4.6.2 等
バージョンアップと不具合
「バージョンアップすると不具合が起こる」と言われますが、実際のところはどうでしょうか?
これについて多くのバージョンアップに関わる私からは「本当の話」と言えます。
テーマやプラグインに起因する不具合
先ほど解説したメジャーバージョンアップの際に、使っているテーマが古かったり、使っているプラグインが古い機能を利用している場合に、不具合が発生する可能性があります。
ただし、テーマだけで言えばそこまで頻度は多くありません。
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 以上が必須となり、動作させることができないサーバーが頻発しました。
テーマやプラグインが古い機能を使っているかどうかの確認方法
バージョンアップ時の不具合の原因として「古い機能を使っている」という原因があることを解説しました。
では、そんな「古い機能を使っているかの確認」方法をご紹介したいと思います。
[box class=”red_box” title=”注意”]
本番公開中のサイトでこれをやると、警告表示などがお客様に見えるところに表示されてしまうので、セキュリティ上の大きなリスクになります。
実施する際はテストサーバーなど、自分や社内の人間しか目に触れない環境を用意して、そこで実施するようにしてください。
本番公開中のサイトで実施した結果については、如何なる場合も責任を負うことができませんので、重々ご注意下さい。
[/box]
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完全対応!」と謳ったサーバーがありますが、バージョンまでは明記していないことが多いため、必ずご自身で対応しているかを確認して下さい。
[box class=”yellow_box” title=”補足”]以前にWordPress3.1までしか対応していないのに、WordPress完全対応!と謳ったサーバーに実際に遭遇したことがあります。[/box]
3.については先ほど述べたとおり、デバッグモードをオンにして、非推奨の機能を使っていないか確認をしてみてください。
また、アップデートの前に必ずWordPressのバックアップを実施して、いつでも元に戻せる状態にしておきましょう。
バックアップを取り忘れてしまった場合、不具合が起きたときに取り返しが付かないことになるので、バージョンアップ前には必ずバックアップを取り、サイトが正常に動作することが確認できるまで、バックアップは大切に保管しておきましょう。
バックアップは下記で非常に簡単な方法を紹介していますので、是非ご覧下さい。
[kanren postid=”192″]
バージョンアップで不具合が出てしまったら
- 画面が真っ白になってしまった!
- 管理画面にアクセスできない!
- 警告がでて画面が崩れてしまった!
- etc…
そういった不具合が起きてしまった場合、WordPressの専門知識が必要となり、自力で修正するのが難しくなります。
もし管理画面にアクセスできるのであれば、プラグインを1個1個停止させながら、都度サイトが正しく表示されるようになるか確認してみましょう。
もしプラグインが原因だった場合、1.の作業の途中で、正常な表示に戻ることがあります。
そうなった場合、そのプラグインがWordPressのバージョンアップについてこれていないため、作者がプラグインをバージョンアップするのを待つか、自分でそのプラグインを改造してしまうか、違うプラグインを探す必要があります。
もしプラグインを全部停止させても、エラー表示が出たりサイトが表示されなかった場合、テーマに不具合があるか、それ以外の不具合が起こっている可能性が高いです。
速やかにバックアップを用いて、バージョンアップ前のサイトを復元させましょう。
この不具合を修正するには、WordPressとPHPの知識が必要になります。
もしご自身で作成されたサイトではなければ、開発元に相談してみる必要があります。
[box class=”blue_box” title=”自動バージョンアップ”]
WordPressにはバージョンアップを自動的に適用する「自動バージョンアップ」がバージョン 3.7 から搭載されました。
この機能を使うには、PHP側からWordPressの全ファイルが書き換えできる、という前提条件を満たす必要があります。
条件を満たしているのであればバージョンアップが配信された場合に、自動的に本体のバージョンを更新してくれます。
標準的には「マイナーバージョンアップ」のみが自動バージョンアップで適用されるのですが、設定によっては「メジャーバージョンアップ」も自動バージョンアップで適用することも可能です。
非常に便利な機能の反面、例えばWordPressの本体ファイルに手を加えていたり、シビアなバージョン依存があるプラグインを使っていると、自動バージョンアップの後に不具合が出ることがあります。
本来はオンにしておいた方が良いのですが、どうしても不要であったり、メジャーバージョンアップも自動で適用したいという怖いもの知らずな方は、下記のページを参考に最適な設定にしてみてください。
[/box]
おわりに
今回はWordPressのバージョンアップについて、基本的な事柄をご紹介しました。
運用中のサイトに不具合が起こってサイトが見られなくなってしまうことで、大きなトラブルに繋がることがあり、どうしてもバージョンアップは二の足を踏む傾向にあります。
しかしWordPressも日進月歩で進化しており、またセキュリティホールなどの対処もあるため、できる限り最新版で運用した方が、安全な運用ができるようになります。
バックアップを取って、互換性の確認が取れていれば、バージョンアップもそんなに怖いことではありません。
信頼性の高いウェブサイト運営を続けるためにも、バージョンアップが不安で二の足を踏んでいた方は、この機会に検討してみてください。